13

私は2次元のnumpy配列を持っています。

各行は3つの要素の長さで、0〜3の整数です。これは6ビット整数を表し、各セルは順番に2ビットを表します。

私はそれらを完全な整数に変換しようとしています。

例えば

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 に答える