首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将NumPy阵列转储到csv文件中

将NumPy阵列转储到csv文件中
EN

Stack Overflow用户
提问于 2011-05-21 18:01:16
回答 7查看 951.9K关注 0票数 676

有没有办法将NumPy数组转储到CSV文件中?我有一个2D NumPy数组,需要将其转储为人类可读的格式。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-05-21 18:10:15

numpy.savetxt将数组保存为文本文件。

代码语言:javascript
复制
import numpy
a = numpy.asarray([ [1,2,3], [4,5,6], [7,8,9] ])
numpy.savetxt("foo.csv", a, delimiter=",")
票数 1.1K
EN

Stack Overflow用户

发布于 2016-12-12 16:38:49

您可以使用pandas。它确实需要一些额外的内存,所以它并不总是可行的,但它非常快速且易于使用。

代码语言:javascript
复制
import pandas as pd 
pd.DataFrame(np_array).to_csv("path/to/file.csv")

如果不需要标头或索引,请使用to_csv("/path/to/file.csv", header=None, index=None)

票数 192
EN

Stack Overflow用户

发布于 2016-12-07 11:42:10

将记录数组写为带有头文件的CSV文件需要更多的工作。

此示例读取CSV文件(example.csv)并将其内容写入另一个CSV文件(out.csv)。

代码语言:javascript
复制
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内置模块:

代码语言:javascript
复制
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())
票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6081008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档