numpy中的矩阵加法/乘法

时间:2013-12-31 17:22:26

标签: python math numpy matrix

原谅我,自从我拿出矩阵数学以来已经将近20年了。

我在太空中有一点:

point1 = (x, y)

我有一个缩放器:

scaler = 0.5

我有一个转换矩阵:

xform_matrix = [
    ( 1.0,  1.0),
    ( 1.0, -1.0),
    (-1.0, -1.0),
    (-1.0,  1.0)
]

我希望最终矩阵为:

new_matrix = [
    (x + (1.0) * 0.5,  y + (1.0) * 0.5),
    (x + (1.0) * 0.5,  y - (1.0) * 0.5),
    (x - (1.0) * 0.5,  y - (1.0) * 0.5),
    (x - (1.0) * 0.5,  y + (1.0) * 0.5),
]

执行上述翻译的numpy矩阵操作是什么?

提前多多谢谢!

1 个答案:

答案 0 :(得分:4)

我认为以下是您正在寻找的内容:

>>> point1 = (3, 5)
>>> scalar = 0.5
>>> xform_matrix = np.array([[1., 1.], [1., -1.], [-1., -1.], [-1., 1.]])
>>> (xform_matrix * scalar) + point1
array([[ 3.5,  5.5],
       [ 3.5,  4.5],
       [ 2.5,  4.5],
       [ 2.5,  5.5]])

如果您真的打算在添加后应用标量(x + 1.0) * 0.5,那么您可以使用以下内容:

>>> (xform_matrix + point1) * scalar
array([[ 2.,  3.],
       [ 2.,  2.],
       [ 1.,  2.],
       [ 1.,  3.]])