本文介绍了类型错误:数组数据类型(&;#39;对象&;#39;)和格式说明符(&;#39;%.18e&;#39;)不匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!
问题描述
我有以下数组:
X = np.array([image_array_to_vector1,image_array_to_vector2,image_array_to_vector3,image_array_to_vector4])
打印出的X
如下所示:
[array([167, 167, 169, ..., 1, 1, 1], dtype=uint8)
array([42, 43, 43, ..., 41, 36, 34], dtype=uint8)
array([0, 0, 0, ..., 0, 0, 0], dtype=uint8)
array([0, 0, 0, ..., 0, 0, 0], dtype=uint8)]
当我尝试将数据另存为txt时:
X_to_text_file = np.savetxt('x.txt',X)
我得到以下信息:
File "/Library/Python/2.7/site-packages/numpy/lib/npyio.py", line 1258, in savetxt
% (str(X.dtype), format))
TypeError: Mismatch between array dtype ('object') and format specifier ('%.18e')
为什么?我如何解决此问题?
谢谢。
推荐答案
如果没有一些示例数据,复制此代码有点困难,但以下是我得出的结论。
arr = np.array([np.array([1,2,3]), np.array([1,2,3,4])])
arr
array([array([1, 2, 3]), array([1, 2, 3, 4])], dtype=object)
np.savetxt('x.txt', arr)
TypeError: Mismatch between array dtype ('object') and format specifier ('%.18e')
正如@artier所指出的,在.txt文件的Write Object Array to.txt fileWrite Object Array to.txt file中,接受答案的末尾有一小段代码
这表明您可以使用fmt='%s'
将数组保存为字符串。使用此格式似乎为我解决了问题(同样,如果没有数据样本,我也无法重新创建您的问题)。
np.savetxt('x.txt', arr, fmt='%s')
我要指出的是,如果您希望保存不同的阵列并希望在单个位置保存它们,savez
非常有用。
这篇关于类型错误:数组数据类型(&;#39;对象&;#39;)和格式说明符(&;#39;%.18e&;#39;)不匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!
本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!