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] 的某个权重向量对每一行求和。

最优雅的方法是什么?我想我必须先做某种点积,然后是一个总和,但我不是 100% 有信心在哪里做点。

4

1 回答 1

25

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

>>> 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])
于 2012-05-21T05:23:22.643 回答