numpy.savetxt“元组索引超出范围”?

2024-05-17 05:29:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着在文本文件中写几行,下面是我使用的代码:

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”部分,但我得到了同样的结果。


Tags: 代码testimportnumpydataasnpslice
1条回答
网友
1楼 · 发布于 2024-05-17 05:29:39

问题是numpy.save需要一个包含一些形状信息的数组,而您只传递一个数字。

如果您想一次传递一个元素(但我建议您保存整个数组),必须首先将其转换为至少有一个形状的numpy数组

np.savetxt(outfile, array(data_slice).reshape(1,), fmt='%1.4e')

这是因为单个数字的形状是一个空元组,若要写入文件,请尝试沿第一个维度拆分它

array(1).shape == tuple()
#True

要保存整个数组,只需执行以下操作:

np.savetxt(outfile, data, fmt='%1.4e')

相关问题 更多 >