有没有办法将NumPy数组转储到CSV文件中?我有一个2D NumPy数组,需要将其转储为人类可读的格式。
发布于 2011-05-21 18:10:15
numpy.savetxt
将数组保存为文本文件。
import numpy
a = numpy.asarray([ [1,2,3], [4,5,6], [7,8,9] ])
numpy.savetxt("foo.csv", a, delimiter=",")
发布于 2016-12-12 16:38:49
您可以使用pandas
。它确实需要一些额外的内存,所以它并不总是可行的,但它非常快速且易于使用。
import pandas as pd
pd.DataFrame(np_array).to_csv("path/to/file.csv")
如果不需要标头或索引,请使用to_csv("/path/to/file.csv", header=None, index=None)
发布于 2016-12-07 11:42:10
将记录数组写为带有头文件的CSV文件需要更多的工作。
此示例读取CSV文件(example.csv
)并将其内容写入另一个CSV文件(out.csv
)。
import numpy as np
# Write an example CSV file with headers on first line
with open('example.csv', 'w') as fp:
fp.write('''\
col1,col2,col3
1,100.1,string1
2,222.2,second string
''')
# Read it as a Numpy record array
ar = np.recfromcsv('example.csv', encoding='ascii')
print(repr(ar))
# rec.array([(1, 100.1, 'string1'), (2, 222.2, 'second string')],
# dtype=[('col1', '<i8'), ('col2', '<f8'), ('col3', '<U13')])
# Write as a CSV file with headers on first line
with open('out.csv', 'w') as fp:
fp.write(','.join(ar.dtype.names) + '\n')
np.savetxt(fp, ar, '%s', ',')
请注意,上面的示例不能处理带逗号的字符串。要始终用引号将非数字值括起来,请使用csv
内置模块:
import csv
with open('out2.csv', 'w', newline='') as fp:
writer = csv.writer(fp, quoting=csv.QUOTE_NONNUMERIC)
writer.writerow(ar.dtype.names)
writer.writerows(ar.tolist())
https://stackoverflow.com/questions/6081008
复制相似问题