我有一个像这样的 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)
但我不知道如何正确编码。请问有人可以提供任何提示吗?
最佳答案
我猜你要找的是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
确保所有变量都有正确的尺寸。
关于arrays - 对 numpy 数组的所有元素应用线性变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58713206/