我想增加一個矩陣的小部分(變量)[下面的說明代碼] - 但是在循環中運行它們看起來是草率和不雅 - 我懷疑是最慢的方法做這個計算。 我的想法之一是創建另一個我想要增加的維度數組(例如下面的2x3),並用零填充這個臨時數組,以便它與原始維數相同。然後我可以將它們相加。在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 2011-01-29 09:20:33
所以這似乎需要很長時間在相對較大的矩陣(2000 x 2000) - 通過任何方式我可以優化? – malangi 2011-01-29 09:51:26