两个 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