使用权重对Numpy数组进行求和

13
我有一个二维的numpy数组。
每行都有三个元素,是0到3之间的整数。这代表了一个6位整数,每个单元格表示两位,按顺序排列。
我试图将它们转换为完整的整数。
例如:
for i in range(len(myarray)):
  myarray[i] = myarray[i][0] * 16 + myarray[i][1] * 4 + myarray[i][2]

例如,我想对每一行进行加权求和,权重向量为[16,4,1]。如何以最简洁的方式实现?我认为需要进行点积运算再求和,但我不确定在哪里进行点积运算。

1个回答

26

点积的倾斜是正确的,这包括您需要的总和。因此,要获得目标数组元素和一组权重的乘积之和:

>>> a = np.array([[0,1,2],[2,2,3]])
>>> a
array([[0, 1, 2],
       [2, 2, 3]])
>>> weights = np.array([16,4,2])
>>> np.dot(a,weights)
array([ 8, 46])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接