假设我有数组a和数组掩码,
Array a:
[[1,1,2]
[2,2,3]
[3,5,2]
[2,3,4]]
Array mask:
[[0,1]
[1,1]
[1,0]
[0,0]]
如何以如下所示的numpy方式生成具有形状(2,3)的数组c:
Array c:
[[5, 3],
[7, 3],
[5, 5]])
其中第1列是由掩码[:,0]表示的数组a的总和,第2列是掩码[:,1]表示的行的总和,如下所示:
c[:0] = a[1]+a[2]
c[:1] = a[0]+a[1]
答案 0 :(得分:5)
您可以使用numpy
点产品,它基本上是一种矩阵产品,如文档here所述:
对于二维阵列,它是矩阵产品
import numpy as np
np.dot(a.transpose(), mask)
# array([[5, 3],
# [7, 3],
# [5, 5]])