TypeError:数组dtype('float64')和格式说明符之间不匹配

Tes*_*est 5 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')
Run Code Online (Sandbox Code Playgroud)

这两种方法都给我错误

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')
Run Code Online (Sandbox Code Playgroud)

Yig*_*gal 2

您没有提到将 3 维数组写入文本文件的目的是什么,您将来是否会读它,以及您正在寻找什么格式,但这是一种可能性:

import json
print(json.dumps(mydata, default=lambda x: list(x), indent=4))
Run Code Online (Sandbox Code Playgroud)

如果您明确目的,人们将能够提出更适合的解决方案。