我正在尝试将几行写入文本文件,这是我使用的代码:
import numpy as np
# Generate some test data
data = np.arange(0.0,1000.0,50.0)
with file('test.txt', 'w') as outfile:
outfile.write('# something')
for data_slice in data:
np.savetxt(outfile, data_slice, fmt='%1.4e')
outfile.write('# New slice\n')
当代码运行到 savetxt 行时,我收到此错误:
IndexError: tuple index out of range
知道为什么会发生这种情况吗?我尝试删除“fmt”部分,但得到了同样的结果。
问题是 numpy.save 期望一个包含一些形状信息的数组,而您只传递一个数字。
如果你想一次传递一个元素(但我建议你保存整个数组),你必须首先将其转换为形状至少为 1 的 numpy 数组
np.savetxt(outfile, array(data_slice).reshape(1,), fmt='%1.4e')
这是因为单个数字的形状是一个空元组,并且要写入文件,它会尝试沿第一个维度分割
array(1).shape == tuple()
#True
要保存整个数组,只需执行以下操作:
np.savetxt(outfile, data, fmt='%1.4e')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)