#python #arrays #affinetransform
Вопрос:
Я хочу вычислить f(x,y) для генерации точек на плоскости (аффинное преобразование). Моя функция имеет уравнение:
когда я пишу код:
f = np.array([[self.a, self.b], [self.c, self.d]]) * np.array([[x], [y]]) np.array([[self.e], [self.f]])
массивы (2,2) возвращаются, когда они должны были быть (1,2).
Я попытался решить эту проблему с помощью этого кода:
A = np.array([[self.a, self.b], [self.c, self.d]]) B = np.array(([x, y])) C = np.dot(A, B) np.array([[self.e, self.f]])
Но я хочу знать, почему первый код не возвращает массив (1,2) для точек.
Комментарии:
1. «Но я хочу знать, почему первый код не возвращает массив (1,2)» , потому что массивы в Numpy не являются матрицами, а умножение массивов в Numpy не является умножением матриц. Возможно, вы захотите использовать внутренний оператор умножения,
@
.