Аффинные преобразования с помощью Python

#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 не является умножением матриц. Возможно, вы захотите использовать внутренний оператор умножения, @ .