我创建了一个for循环,其中循环中的最终结果是一个名为dataNew的数组,如下所示:
flatID = [flat1, flat2, flat3, flat4, flat5, flat6, flat7, flat8, flat9, flat10, flat11, flat12, flat13, flat14, flat15]
oscimg = ["none"]*15
for i in range(0,14):
fakeBias = flatID[i]
#Biascorrection?
fakeData = np.zeros((636.,2400 ), dtype = "float")
fakeData.shape
biasPerRow=np.median(fakeBias[:,598:636],axis=1)
biasPerRow.shape
dataNew=fakeData[0:598,:]
dataNew.shape
for i in range(635):
dataNew[ : , i ] -= biasPerRow[ i ]
oscimg[i] = dataNew
我正在处理各种拟合文件,其中fit文件中的每个数据都设置为flatID列表中的元素。
我的问题在于将dataNew数组设置为字符串或列表元素,其中对于循环的每次迭代,我可以将dataNew数组的最终值设置为一个字符串,该字符串随每次迭代而变化,以便最终结果将是15个不同的dataNew数组变体被设置为我可以使用的字符串。但是,在使用oscimg [i]设置字符串元素的意义上我错了,因为我返回了以下错误。
IndexError Traceback (most recent call last)
/usr/lib/python2.7/dist-packages/IPython/utils/py3compat.pyc in execfile(fname, *where)
202 else:
203 filename = fname
--> 204 __builtin__.execfile(filename, *where)
/home/*****/Python/Assignment/Ag3.py in <module>()
110 for i in range(635):
111 dataNew[ : , i ] -= biasPerRow[ i ]
--> 112 oscimg[i] = dataNew
113
114 # Example 11.3: Read in dark frames, bias subtract and createmaster darks
IndexError: list assignment index out of range
我不知道如何从这里开始,所以任何意见都会非常感激。
答案 0 :(得分:2)
for i in range(0,14):
#...
for i in range(635):
dataNew[ : , i ] -= biasPerRow[ i ]
oscimg[i] = dataNew
您正在使用i
作为两个for
循环的变量。第二行将覆盖第一行的值,因此最后一行将评估为oscimg[634] = dataNew
。
为循环使用不同的名称。
for i in range(0,14):
#...
for j in range(635):