我有一个包含数据的图像的每个像素数据立方体这个(非常像高光谱成像)。 我试图以一种有效的方式在图像的每个像素上划一条线。 现在,我这样做:优化嵌套循环操作
我的datacube是一个6X1024x1024 numpy数组,我有另一个变量包含我的数据的自变量。
map = np.zeros((1024,1024))
for i in np.mgrid[1:1024]:
for j in np.mgrid[1:1024]:
x = independent_variable # This is my independent variable
y = spec_cube[:,i,j] # The Y data to be fitted is the power at each scale, for a pixel
index = polyfit(x,y,1) # Outputs the slope and the offset
map[i,j] = index[0] # The pixel value is the index
我知道嵌套for循环通常是最糟糕的事情,但我想不出更好的办法。
我尝试以下,但它给出了这样的错误: “ValueError异常:值过多解压”
map = np.zeros((1024,1024))
for i,j in map:
x = independent_variable # This is my independent variable
y = spec_cube[:,i,j] # The Y data to be fitted is the power at each scale, for a pixel
index = polyfit(x,y,1) # Outputs the slope and the offset
map[i,j] = index[0] # The pixel value is the index
这与相关的问题表现出与Python/numpy的一个共同的问题,当你有没有类似numpy的矢量操作,那么你基本上是停留无论你怎么努力优化紧凑的内部循环。在这些类型的情况下,应该认真考虑其他选择,例如C-extensions或更好的Cython。 –