无法将numpy 2d数组保存到fi中

2024-04-26 18:03:03 发布

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

我有以下二维numpy矩阵,它是两个矩阵的串联:

     >>> mnist1_train_final_data=np.hstack((y_train_mnist_ni,features_train_mnist1))
     >>> type(mnist1_train_final_data)
     <type 'numpy.ndarray'>
     >>> mnist1_train_final_data.dtype
     dtype('S32')
     >>> mnist1_train_final_data.shape
      (1149, 129)

如您所见,它是一个二维numpy数组。但是,当我尝试使用以下命令保存它时:

>>> np.savetxt('test.txt', mnist1_train_final_data, delimiter=',', fmt='%5.2f') 

它显示以下错误:

Traceback (most recent call last):   File "<stdin>", line 1, in
<module>   File "/usr/lib/python2.7/site-packages/numpy/lib/npyio.py",
line 1162, in savetxt
    % (str(X.dtype), format)) TypeError: Mismatch between array dtype ('|S32') and format specifier
('%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f,%5.2f')

在我的案例中,如何保存二维numpy矩阵?你知道吗


Tags: innumpydatalibtypenplinetrain
1条回答
网友
1楼 · 发布于 2024-04-26 18:03:03

S32是字符串类型。您指定的格式是针对浮点类型的。要保存字符串类型,使用savetxt需要传递"%s"格式化程序。请注意,默认格式对字符串类型无效,因此必须传递有效的字符串格式化程序,如"%s"

np.savetxt('test.txt', mnist1_train_final_data, delimiter=',', fmt='%s')

相关问题 更多 >