我有一個ndarray,我想用相鄰元素的平均值替換數組中的每個值。下面的代碼可以完成這項工作,但是當我有700個具有形狀(7000,7000)的陣列時,它會超級慢,所以我想知道是否有更好的方法來完成它。謝謝!Numpy:使用相鄰元素的平均值替換陣列中的每個值
a = np.array(([1,2,3,4,5,6,7,8,9],[4,5,6,7,8,9,10,11,12],[3,4,5,6,7,8,9,10,11]))
row,col = a.shape
new_arr = np.ndarray(a.shape)
for x in xrange(row):
for y in xrange(col):
min_x = max(0, x-1)
min_y = max(0, y-1)
new_arr[x][y] = a[min_x:(x+2),min_y:(y+2)].mean()
print new_arr
它對我來說運行得不是很慢,也沒有看起來應該慢慢運行。 –
@EliSadoff它將如果我有700陣列形狀(7000,7000)... – Chiefscreation
我不知道如何在python中做到這一點,但你有沒有考慮過多線程或並行處理?我知道在C中可以這樣做來加速大數據處理。 – Michael