train = np.zeros([26,26])
train2 = np.zeros([26,26])
tmp = [1,2,3,4,5,6,1,2,3,4,5,6]
train[tmp[0:-1], tmp[1:]] += 1
for i in range(len(tmp)-1):
train2[tmp[i], tmp[i+1]] += 1
print(np.sum(train - train2))
出力は-5です
tmp
重複するタプルがある場合、 train
はtrain2
と等しくないことがわかりました。 ゴツゴツしたスライスに何か問題がありますか?
あなたもね。
たとえば、 [1, 2]
ように、「同じ位置」に2回書き込もうとしていることがわかります。 残念ながら(または、観点によっては幸いなことに)、それは機能しません。
ただし、 np.add.at
を使用することはできます。これは、ドキュメントによると、「追加ufuncの場合、このメソッドはa [indices] + = bと同等ですが、結果が複数回インデックス付けされた要素に対して累積される点が異なります。」:
train = np.zeros([26,26])
np.add.at(train, [tmp[:-1], tmp[1:]], 1)
ありがとう!
最も参考になるコメント
たとえば、
[1, 2]
ように、「同じ位置」に2回書き込もうとしていることがわかります。 残念ながら(または、観点によっては幸いなことに)、それは機能しません。ただし、
np.add.at
を使用することはできます。これは、ドキュメントによると、「追加ufuncの場合、このメソッドはa [indices] + = bと同等ですが、結果が複数回インデックス付けされた要素に対して累積される点が異なります。」: