从我身边其他愚蠢的问题;)我有与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