第二次编辑
这就是“stokes_line”的生成方式:
os.system('pdv -t %s > temp.txt ' % epoch_name)
stokes_line = np.genfromtxt('temp.txt', usecols=3, dtype=[('stokesI','float')], skip_header=1)
os.system('vap -nc "mjd" %s >> mjd.txt' % new_y[i])
stokes_list[b] = stokes_line
“pdv”是来自另一个程序的命令,它生成了“stokes_line”中使用的一些数字。
stokes_list 每次都会在循环中添加一个新的 stokes_line 。
编辑:
stokes_line 是使用 numpy.genfromtxt 命令创建的(因此从 txt 文件中提取)并由浮点数组成,它们看起来像这样:
[(0.00126596,) (0.000621272,) (0.00058694,) ..., (0.0015368,) (0.000926448,) (7.95851e-05,)]
一堆一起组成一个 stokes_list,每个 stokes_line 由相同数量的浮点数组成。
问题是因为 genfromtxt 没有创建一个全是方括号的列表,而是其他东西(它是否称为序列)?
我编写了一个可以在我的笔记本电脑(python 版本 2.7.3)上找到的 python 代码,但它似乎不能在我的大学桌面(python 版本 2.5.2)上运行。
我不认为在这里显示大量代码会有用,但错误消息在这两行的第二行:
os.system('vap -nc "mjd" %s >> mjd.txt' % new_y[i])
stokes_list[b] = stokes_line
其中“vap”是来自另一个程序的命令,它返回一些值。无论如何,问题的症结在于我只有在旧版本的 Python 上运行时才会收到以下错误消息:
ValueError:使用序列设置数组元素。
现在我做了一些研究,人们说问题是由于某些列表的长度不兼容 - 但如果是这种情况,为什么当我在新版本的 Python 上运行它时它工作正常。
任何帮助都会很棒,谢谢!