如何将 numpy ndarray 保存为 .csv 文件?
Posted
技术标签:
【中文标题】如何将 numpy ndarray 保存为 .csv 文件?【英文标题】:How to save numpy ndarray as .csv file? 【发布时间】:2018-07-15 07:00:41 【问题描述】:我创建了一个numpy
数组如下:
import numpy as np
names = np.array(['NAME_1', 'NAME_2', 'NAME_3'])
floats = np.array([ 0.1234 , 0.5678 , 0.9123 ])
ab = np.zeros(names.size, dtype=[('var1', 'U6'), ('var2', float)])
ab['var1'] = names
ab['var2'] = floats
ab
中的值如下所示:
array([(u'NAME_1', 0.1234), (u'NAME_2', 0.5678), (u'NAME_3', 0.9123)],
dtype=[('var1', '<U6'), ('var2', '<f8')])
当我尝试使用savetxt()
命令将ab
保存为.csv 文件时,
np.savetxt('D:\test.csv',ab,delimiter=',')
我得到以下错误
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-66-a71fd201aefe> in <module>() ----> 1 np.savetxt('D:\Azim\JF-Mapping-workflow-CRM\Backup\delete.csv',ab,delimiter=',') c:\python27\lib\site-packages\numpy\lib\npyio.pyc in savetxt(fname, X, fmt, delimiter, newline, header, footer, comments) 1256 raise TypeError("Mismatch between array dtype ('%s') and " 1257 "format specifier ('%s')" -> 1258 % (str(X.dtype), format)) 1259 if len(footer) > 0: 1260 footer = footer.replace('\n', '\n' + comments) TypeError: Mismatch between array dtype ('[('var1', '<U6'), ('var2', '<f8')]') and format specifier ('%.18e,%.18e')
【问题讨论】:
一般情况:***.com/questions/6081008/… @Anton,感谢您分享更多信息。 【参考方案1】:您的数组包含字符串,但 np 默认格式是浮点数。
尝试手动设置格式:
np.savetxt(r'g:\test.csv',ab,delimiter=',', fmt=('%s, %f'))
【讨论】:
感谢您的帮助。我刚刚测试了你的代码,它也不起作用。编辑:它工作得很好。以上是关于如何将 numpy ndarray 保存为 .csv 文件?的主要内容,如果未能解决你的问题,请参考以下文章