python - 将NumPy数组转储到csv fi中

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

9个解决方案

588 votes

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

import numpy

a = numpy.asarray([ [1,2,3], [4,5,6], [7,8,9] ])

numpy.savetxt("foo.csv", a, delimiter=",")

Jim Brissom answered 2019-01-28T13:14:16Z

65 votes

大熊猫简单快捷

import pandas as pd

df = pd.DataFrame(np_array)

df.to_csv("file_path.csv")

maxbellec answered 2019-01-28T13:14:38Z

31 votes

tofile是一个方便的功能:

import numpy as np

a = np.asarray([ [1,2,3], [4,5,6], [7,8,9] ])

a.tofile('foo.csv',sep=',',format='%10.5f')

手册页有一些有用的注释:

这是一种便于快速存储阵列数据的功能。   关于字节序和精度的信息丢失了,所以这种方法不是   用于存档数据或传输数据的文件的不错选择   在具有不同字节序的机器之间。 其中一些问题可以   通过输出数据作为文本文件来克服,代价是   速度和文件大小。

注意。 此功能不会生成多行csv文件,它会将所有内容保存到一行。

atomh33ls answered 2019-01-28T13:15:23Z

11 votes

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

此示例读取带有第一行标题的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')

print(repr(ar))

# rec.array([(1, 100.1, 'string1'), (2, 222.2, 'second string')],

# dtype=[('col1', '

# 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', 'wb') as fp:

writer = csv.writer(fp, quoting=csv.QUOTE_NONNUMERIC)

writer.writerow(ar.dtype.names)

writer.writerows(ar.tolist())

Mike T answered 2019-01-28T13:15:59Z

3 votes

如果你想写在列中:

for x in np.nditer(a.T, order='C'):

file.write(str(x))

file.write("\n")

这里'a'是numpy数组的名称,'file'是要写入文件的变量。

如果你想连续写:

writer= csv.writer(file, delimiter=',')

for x in np.nditer(a.T, order='C'):

row.append(str(x))

writer.writerow(row)

Rimjhim Bhagat answered 2019-01-28T13:16:37Z

2 votes

如果要将numpy数组(例如your_array = np.array(ast.literal_eval(cell_string)))保存到一个单元格,可以先将其转换为[[1, 2], [2, 4]]。

然后以正常方式将其保存到一个单元格,使用your_array = np.array(ast.literal_eval(cell_string))并且csv文件中的单元格看起来像这样[[1, 2], [2, 4]]

然后你可以像这样恢复你的数组:your_array = np.array(ast.literal_eval(cell_string))

Mr Poin answered 2019-01-28T13:17:16Z

2 votes

你也可以使用纯python而不使用任何模块。

# format as a block of csv text to do whatever you want

csv_rows = ["{},{}".format(i, j) for i, j in array]

csv_text = "\n".join(csv_rows)

# write it to a file

with open('file.csv', 'w') as f:

f.write(csv_text)

Greg answered 2019-01-28T13:17:38Z

1 votes

如前所述,将阵列转储为CSV文件的最佳方法是使用.gz方法。 但是,我们应该知道某些事情要做得恰当。

例如,如果你有一个numpy数组,其中包含.gz

narr = np.array([[1,2],

[3,4],

[5,6]], dtype=np.int32)

并希望使用.gz保存

np.savetxt('values.csv', narr, delimiter=",")

它将以浮点指数格式存储数据

1.000000000000000000e+00,2.000000000000000000e+00

3.000000000000000000e+00,4.000000000000000000e+00

5.000000000000000000e+00,6.000000000000000000e+00

您必须使用名为.gz的参数更改格式

np.savetxt('values.csv', narr, fmt="%d", delimiter=",")

以原始格式存储数据

以压缩的gz格式保存数据

此外,.gz可用于以.gz压缩格式存储数据,这在通过网络传输数据时可能很有用。

我们只需将文件的扩展名更改为.gz,numpy将自动处理所有内容

np.savetxt('values.gz', narr, fmt="%d", delimiter=",")

希望能帮助到你

Daksh answered 2019-01-28T13:19:00Z

0 votes

在Python中,我们使用csv.writer()模块将数据写入csv文件。 该模块类似于csv.reader()模块。

import csv

person = [['SN', 'Person', 'DOB'],

['1', 'John', '18/1/1997'],

['2', 'Marie','19/2/1998'],

['3', 'Simon','20/3/1999'],

['4', 'Erik', '21/4/2000'],

['5', 'Ana', '22/5/2001']]

csv.register_dialect('myDialect',

delimiter = '|',

quoting=csv.QUOTE_NONE,

skipinitialspace=True)

with open('dob.csv', 'w') as f:

writer = csv.writer(f, dialect='myDialect')

for row in person:

writer.writerow(row)

f.close()

分隔符是用于分隔字段的字符串。 默认值为逗号(,)。

Tamil Selvan S answered 2019-01-28T13:19:30Z

python numpy数组动态写入csv文件_python - 将NumPy数组转储到csv fi中相关推荐

  1. python创建一个csv文件_python如何写入csv

    在使用python对文件操作的过程中,你肯定碰到过对csv文件的操作,下面就python对csv文件的操作进行详述. CSV(Comma-Separated Values)逗号分隔符,也就是每条记录中 ...

  2. python本地读csv文件_python读写csv文件方法详细总结

    python提供了大量的库,可以非常方便的进行各种操作,现在把python中实现读写csv文件的方法使用程序的方式呈现出来. 在编写python程序的时候需要csv模块或者pandas模块,其中csv ...

  3. python中如何打开csv文件_Python对CSV文件的处理

    原标题:Python对CSV文件的处理 在接口自动化测试中,把测试的数据存储到csv的文件也是一种很不错的选择,下面就详细的介绍如何实现CSV文件内容的读取和如何把数据写入到CSV的文件中.在Pyth ...

  4. python如何导出csv文件_python pandas如何输出csv文件

    python pandas如何输出csv文件​mp.weixin.qq.com 有如下csv文件,在读取之后,如何输出为同样的格式 1.常见用法 >>> df.to_csv(r'D: ...

  5. node + ts读取csv文件为二维数组

    node + TypeScript读取csv文件为二维数组 CSDN用户名:jcLee95 邮箱:291148484@163.com 原创不易,感谢点赞支持. 在数据分析的时候经常需要读取csv格式的 ...

  6. C++实现从.txt文件中读取数据存入数组,将数组数据写入.txt文件

    声明: 编译器:vs2017 所有用到的.txt文件都是提前放在当前工程目录下的. 完整测试代码:github–Zhaotiedan 方法一:针对可以提前知道存入数组的大小 1.从.txt文件中读取数 ...

  7. C# CSV文件的导入导出以及datatable转化csv

    1.csv文件写入操作 首先,创建datatable对象: DataTable dt = new DataTable(); 添加列: dt.Columns.Add("name", ...

  8. csv文件用什么打开_什么是CSV文件,如何打开它?

    csv文件用什么打开 A Comma Separated Values (CSV) file is a plain text file that contains a list of data. Th ...

  9. python列表数据写入txt文件_Python将列表数据写入文件(txt, csv,excel)

    写入txt文件 def text_save(filename, data):#filename为写入CSV文件的路径,data为要写入数据列表. file = open(filename,'a') f ...

最新文章

  1. html扩展名用于保存清单文件,HTML5 manifest ApplicationCache
  2. oracle vm 实施图解
  3. JAVA-JSP内置对象之out对象进行页面输出
  4. linux随机数示例:随机产生以139开头的电话号码
  5. io流,装饰者模式_流与装饰器
  6. 【PAT - 甲级1034】Head of a Gang (30分)(并查集)
  7. 一旦有辞职念头就干不长了吗_如何理性而高效地辞职?
  8. python必备基础代码-机器学习算法基础(使用Python代码)
  9. vuex state使用
  10. python快速写入hbase_Python 读写 hbase 数据的正确姿势(一)
  11. Android 学习思维导图
  12. 手机电视应走免费之路
  13. Openstack版本查看
  14. linux:硬链接和软链接
  15. 下方点击出项上方对应的插件_sketch必备插件Craft功能详解(下)
  16. 【推荐系统】:Deep Crossing模型解析以及代码实现
  17. vue生成条形码和二维码并打印
  18. 2022 ICPC Gran Premio de Mexico 1ra Fecha 题解
  19. 来,手写一个Operator (一)
  20. ubuntu/linux系统管理(12)Ubuntu 22.04 安装文件比对工具Meld替代Beyond Compare

热门文章

  1. JavaScript第三章forEach循环第四课
  2. Java 多态的特性和概念
  3. springboot 启动 退出_springboot怎么停止掉服务器 我启动了springboot,但是我修改了程序,我怎么重启啊...
  4. 张云飞 201771010143 《面对对象程序设计(java)》第十七周学习总结
  5. 自动化测试(二)如何用python写一个用户登陆功能
  6. [CATARC_2017] 第三周 残四周
  7. 初级程序员面试不靠谱指南(二)
  8. hdu2112最短路径
  9. Caffe网络结构实现
  10. abaqus dat文件 matlab_提升Abaqus求解效率的七种武器