将NumPy数组转储到csv文件中
有没有办法将NumPy数组转储到CSV文件中? 我有一个2D NumPy数组,需要以人类可读的格式转储它。
#1楼
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文件,而是将所有内容保存到一行。
#2楼
如果要将numpy数组(例如your_array = np.array([[1,2],[3,4]])
)保存到一个单元格,则可以先使用your_array.tolist()
转换。
然后使用delimiter=';'
将其以普通方式保存到一个单元格中delimiter=';'
并且csv文件中的单元格看起来像这样[[1, 2], [2, 4]]
然后,您可以像这样恢复数组: your_array = np.array(ast.literal_eval(cell_string))
#3楼
将记录数组写为带有标题的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', '<i4'), ('col2', '<f8'), ('col3', 'S13')])# 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 csvwith open('out2.csv', 'wb') as fp:writer = csv.writer(fp, quoting=csv.QUOTE_NONNUMERIC)writer.writerow(ar.dtype.names)writer.writerows(ar.tolist())
#4楼
您可以使用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)
#5楼
如果要在列中写:
for x in np.nditer(a.T, order='C'): file.write(str(x))file.write("\n")
这里的“ a”是numpy数组的名称,“文件”是要写入文件的变量。
如果要写在行中:
writer= csv.writer(file, delimiter=',')for x in np.nditer(a.T, order='C'): row.append(str(x))writer.writerow(row)
#6楼
您也可以使用纯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)
#7楼
如前所述,将数组转储到CSV文件的最佳方法是使用.savetxt(...)
方法。 但是,有些事情我们应该知道如何正确完成。
例如,如果您有一个numpy数组,其dtype = np.int32
为
narr = np.array([[1,2],[3,4],[5,6]], dtype=np.int32)
并想使用savetxt
保存为
np.savetxt('values.csv', narr, delimiter=",")
它将数据以浮点指数格式存储为
1.000000000000000000e+00,2.000000000000000000e+00
3.000000000000000000e+00,4.000000000000000000e+00
5.000000000000000000e+00,6.000000000000000000e+00
您将必须使用名为fmt
的参数来更改格式,如下所示:
np.savetxt('values.csv', narr, fmt="%d", delimiter=",")
以原始格式存储数据
以压缩的gz格式保存数据
另外, savetxt
可用于以.gz
压缩格式存储数据,这在通过网络传输数据时可能很有用。
我们只需要更改文件的扩展名即可,因为.gz
和numpy会自动处理所有内容
np.savetxt('values.gz', narr, fmt="%d", delimiter=",")
希望能帮助到你
#8楼
在Python中,我们使用csv.writer()模块将数据写入csv文件。 该模块类似于csv.reader()模块。
import csvperson = [['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()
定界符是用于分隔字段的字符串。 默认值为comma(,)。
#9楼
我相信您也可以很简单地完成此操作,如下所示:
- 将Numpy数组转换为Pandas数据框
- 另存为CSV
例如#1:
# Libraries to importimport pandas as pdimport nump as np#N x N numpy array (dimensions dont matter)corr_mat #your numpy arraymy_df = pd.DataFrame(corr_mat) #converting it to a pandas dataframe
例如#2:
#save as csv my_df.to_csv('foo.csv', index=False) # "foo" is the name you want to give# to csv file. Make sure to add ".csv"# after whatever name like in the code
#10楼
numpy.savetxt
将数组保存到文本文件。
import numpy
a = numpy.asarray([ [1,2,3], [4,5,6], [7,8,9] ])
numpy.savetxt("foo.csv", a, delimiter=",")
将NumPy数组转储到csv文件中相关推荐
- python numpy数组动态写入csv文件_python - 将NumPy数组转储到csv fi中
python - 将NumPy数组转储到csv fi中 有没有办法将NumPy数组转储到CSV文件中? 我有一个2D NumPy数组,需要以人类可读的格式转储它. 9个解决方案 588 votes n ...
- matlab如何读取二维数组,Matlab从csv文件中读取多个二维数组
我有一个csv文件,它包含2列4列数组,但行数不等.例如:Matlab从csv文件中读取多个二维数组 2, 354, 23, 101 3, 1023, 43, 454 1, 5463, 45, 765 ...
- python数组写入txt文档_Python打开文件,将list、numpy数组内容写入txt文件中的方法...
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- Python打开文件,将list、numpy数组内容写入txt文件中
python保存numpy数据: numpy.savetxt("result.txt", numpy_data); 保存list数据: file=open('data.txt',' ...
- python怎么读取csv的一部分数据_python批量读取csv文件 如何用python将csv文件中的数据读取成数组...
如何用python把多个csv文件数据处理后汇总到新csv文件你看这月光多温柔,小编转头还能看见你,一切从未坍塌. 可以用pandas读取数据,首先把文件方同一个文件价里,然后对当前文件价的所有内容循 ...
- ML之MLiR:利用多元线性回归法,从大量数据(csv文件)中提取五个因变量(输入运输任务总里程数、运输次数、三种不同的车型,预测需要花费的小时数)来预测一个自变量
ML之MLiR:利用多元线性回归法,从大量数据(csv文件)中提取五个因变量(输入运输任务总里程数.运输次数.三种不同的车型,预测需要花费的小时数)来预测一个自变量 输出结果 代码设计 from nu ...
- java将数据写入csv文件,从csv文件中读取数据
全栈工程师开发手册 (作者:栾鹏) java教程全解 java将数据写入csv文件,从csv文件中读取数据 测试代码 public static void main(String[] arges){/ ...
- matlab从csv文件中读取时间转换异常
matlab 从 csv 文件中读取时间转换异常 最近一段时间一直在研究 matlab 读取各种数据,自以为文件读取的水平还行.可是,昨天,帮朋友读取一个 csv 文件时,时间转换却让我感到非常奇怪. ...
- python获取mysql中的数据供js调用_python 读取mysql数据至csv文件中,并发送邮件
test 代码: #coding:utf-8 ''' Created on 2019年2月18日 @author: Administrator ''' import ConfigParser impo ...
最新文章
- LVM逻辑卷创建管理
- 黑马程序员Linux系统开发视频之gdb调试方法
- sympy科学计算器
- ecshop退出登录会清空购物车的bug优化,最完美解决方法
- 【ROS学习笔记】(九)参数的使用与编程方法
- 让大家久等了,BERT推理加速终于开源了
- 如何通过ip访问服务器文件共享,通过ip访问云服务器文件共享
- Paip.声明式编程以及DSL 总结
- OSError: [WinError 126] module could not be found(OSError: [WinError 126] 找不到指定的模块)
- 2022新版UI云购H5系统源码+完美运行/功能强大
- 如何获得Win10联想锁屏的壁纸(联想锁屏的壁纸灰常好看,那么我们如何获得呢?)
- 1111,你的能量够买包卫生巾吗?
- Unity 的Position和Rotation问题(坑)
- tp5 JWT生成token验证接口安全、防止高频请求
- Android游戏开发教程
- 苹果的名字测试软件,抖音手机称重是什么软件叫什么名字 怎么用iPhone苹果手机称重...
- form表单ajax提交json数据
- 在Google 上搜书的方法
- 管理的基础知识都包含哪些内容
- 实验项目三:基于A*搜索算法迷宫游戏开发
热门文章
- 做好十足准备面字节跳动,五面都过了,HR告诉我这个原因我被刷了...
- Android 布局错乱 Android花屏
- 使用registerForActivityResult替代onActivityResult
- List集合中的对象根据属性排序
- java开源网络服务器端组件_OpenNMS - 网络服务器端组件 - 组件类库 - JAVA开源项目 - 开源吧...
- Kafka如何对Topic元数据进行细粒度的懒加载、同步等待?
- 使用Storm实现WordSum
- pod install 失败 Сocoapods trunk URL couldn't be downloaded
- instanceof 实现
- HDU 4708 Rotation Lock Puzzle(模拟)