python - 类型错误 : Mismatch between array dtype ('float64' ) and format specifier

标签 python arrays numpy

我有一个尺寸为 1000*30*150 的 numpy 数组。我正在尝试将其保存为 txt 文件。到目前为止我已经试过了

np.savetxt("test.txt", mydata, fmt='%.5f', delimiter=",")
#and 
with open('test.txt', 'w') as f:
    for row in mydata:
        np.savetxt(f, row, delimiter=',', fmt='%.5f')

两种方法都报错

Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/numpy/lib/npyio.py", line 1254, in savetxt
    fh.write(asbytes(format % tuple(row) + newline))
TypeError: only length-1 arrays can be converted to Python scalars

During handling of the above exception, another exception occurred:

Traceback (most recent call last):


        np.savetxt("test.txt", train, fmt='%.5f', delimiter=",")
      File "/usr/local/lib/python3.5/dist-packages/numpy/lib/npyio.py", line 1258, in savetxt
        % (str(X.dtype), format))
    TypeError: Mismatch between array dtype ('float64') and format specifier ('%.5f,%.5f,%.5f,%.5f,%.5f,%.5f,%.5f,%.5f,%.5f,%.5f,%.5f,%.5f,%.5f,%.5f,%.5f,%.5f,%.5f,%.5f,%.5f,%.5f,%.5f,%.5f,%.5f,%.5f')

最佳答案

问题是您的数组是 3 维的,无法以二维格式保存。要么 reshape 它,使其成为 2d:

mydata = mydata.reshape(mydata.shape[0],mydata.shape[1]*mydata.shape[2])
np.savetxt('text.txt',mydata,fmt='%.5f',delimiter=',')

或者如果您不需要将其作为文本文件读取并且只想稍后在 python 中重新加载它,请使用:

np.save('text.npy',mydata)

关于python - 类型错误 : Mismatch between array dtype ('float64' ) and format specifier,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45580330/

相关文章:

java - 将文件读入数组 - Java

python - 在 Python 中计算 Fiedler 向量

python - 伪终端master读取刚刚写入的内容

Python 交互式循环中断

python - 拆分二维 numpy 数组,其中可能存在不均匀拆分

数组中数组的 Python/Numpy 索引

Python 将字符串转换为分类 - numpy

python - 如何在 Python 中将 dict 绑定(bind)到准备好的 Cassandra 语句?

Python2正则表达式似乎有问题

ios - 如何通过定时器索引数组并绑定(bind)到 View ?