将线性转换应用于numpy数组的所有元素

我有一个像这样的numpy数组

============ arr_data
<type 'numpy.ndarray'>
[[ 269.05515748   24.71801578]
 [ 276.96505874   21.72957922]
 [ 198.32475308   19.26596641]
 ...
 [ 158.11078724  -49.91437661]
 [ 219.79342843  -62.06756014]
 [  69.92358315 -166.19385119]]
('arr_data ndim: ',2)
('         size: ',413410)
('        shape: ',(206705,2))
('        dtype: ',dtype('float64'))

将其可视化为206705个向量(x,y)的数组,如何将相同的线性变换应用于数组中的每个元素?

我想这将是一个2x2对角矩阵的矩阵乘法,然后添加一个向量,即

   (x',y') = ([a,0],[0,b])(x,y) + (c,d)

但是我不知道如何正确编码。有人可以提供任何提示吗?

hzzxcgtz2 回答:将线性转换应用于numpy数组的所有元素

我想您正在寻找的是np.matmul()

import numpy as np   
a_b = np.array([[a,0],[0,b]])
x_y_new = np.matmul(x_y,a_b) + c_d

确保所有变量的尺寸正确。

本文链接:https://www.f2er.com/3158920.html

大家都在问