從我身邊其他愚蠢的問題;)我有與LEN(x)= LEN(Y)= 7'700'000下面的代碼片段一些問題:減少時間久for循環Python中
from numpy import *
for k in range(len(x)):
if x[k] == xmax:
xind = -1
else:
xind = int(floor((x[k]-xmin)/xdelta))
if y[k] == ymax:
yind = -1
else:
yind = int(floor((y[k]-ymin)/ydelta))
arr = append(arr,grid[xind,yind])
所有變量都是浮點數或整數,除了arr
和grid
。 arr
是一維數組,而grid
是二維數組。
我的問題是,它需要很長時間來運行循環(幾分鐘)。任何人都可以解釋我,爲什麼需要這麼長時間?有沒有人有建議?即使我試圖通過arange()
交換range()
,那麼我只能節省一些時間。
謝謝。
1st EDIT 對不起。忘了告訴我進口numpy
第二編輯
我有一個2D網格的幾個問題。網格的每個單元格都存儲了一個值。我必須找出該點具有哪個位置並將該值應用於新陣列。這是我的問題和我的想法。
如果你想更好地理解它,請看圖片。單元格的值用不同的顏色表示。
什麼是'append'? – delnan 2011-04-13 20:19:15
你的意思是'xrange'? – 2011-04-13 20:20:05