两个 numpy 数组的嵌套操作,一个 2d 和一个 1d
nested operations on two numpy arrays, one 2d and one 1d
假设我有一个形状为 (3,3) 的二维 numpy 数组 X 和一个形状为 (3,) 的 numpy 数组 Y 其中
X = np.array([[0,1,2],
[3,4,5],
[1,9,2]])
Y = np.array([[1,0,1]])
我如何创建一个 numpy 数组,例如 Z,通过按元素乘以 X、Y,然后按行求和?
multiplying element-wise would yield: 0,0,2, 3,0,5, 1,0,2
then, adding each row would yield:
Z = np.array([2,8,3])
我试过
的变体
Z = np.sum(X * Y) --> adds all elements of entire array, not row-wise.
我知道我可以使用 forloop,但数据集非常大,所以我试图找到一种更有效的特定于 numpy 的方法来执行该操作。这可能吗?
您可以执行以下操作:
sum_row = np.sum(X*Y, axis=1) # axis=0 for columnwise
假设我有一个形状为 (3,3) 的二维 numpy 数组 X 和一个形状为 (3,) 的 numpy 数组 Y 其中
X = np.array([[0,1,2],
[3,4,5],
[1,9,2]])
Y = np.array([[1,0,1]])
我如何创建一个 numpy 数组,例如 Z,通过按元素乘以 X、Y,然后按行求和?
multiplying element-wise would yield: 0,0,2, 3,0,5, 1,0,2
then, adding each row would yield:
Z = np.array([2,8,3])
我试过
的变体 Z = np.sum(X * Y) --> adds all elements of entire array, not row-wise.
我知道我可以使用 forloop,但数据集非常大,所以我试图找到一种更有效的特定于 numpy 的方法来执行该操作。这可能吗?
您可以执行以下操作:
sum_row = np.sum(X*Y, axis=1) # axis=0 for columnwise