行列の小さな部分(変数)をインクリメントしたいのですが(ループの例題を参照してください)、ループを使ってループを実行するのはちょっと面白くないようです。この計算を行う。 私が持っていたアイディアの1つは、インクリメント(2x3以下の例で)し、この一時的な配列を0で埋め込んで元のサイズと同じ次元にする次元の別の配列を作成することでした。私はそれらを合計することができます。Pythonの行列の部分集合を増やす
numpy
でこのパディングを実行する方法がわからない場合、またはそれがこの計算を実行する最も効果的な方法である場合は、私はできるだけこれを試して最適化したいと思います。
>>> import numpy as np
>>> a = np.zeros((10,10))
>>> for i in range(3,5):
... for x in range(4,7):
... a[i][x] += 1
>>> a
array([[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 1., 1., 1., 0., 0., 0.],
[ 0., 0., 0., 0., 1., 1., 1., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])
笑、これは恥ずかしいです。ありがとうございました! – malangi
これは、比較的大きな行列(2000 x 2000)で長い時間がかかりそうです - これを最適化できる方法は何ですか? – malangi
@flyingcrab。残念ながら私は知らない。おそらく、GPUでnumpyを使用することは可能です。 – Marcin