【转】Python Numpy数组保存

本文详细介绍了Numpy中用于保存数据的三种方法:二进制文件保存、.npy文件保存和.txt文件保存,包括各自的优点、使用场景及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Numpy提供了几种数据保存的方法。


   以3*4数组a为例:


    1. a.tofile("filename.bin")


      这种方法只能保存为二进制文件,且不能保存当前数据的行列信息,文件后缀不一定非要是bin,也可以为txt,但不影响保存格式,都是二进制。


      这种保存方法对数据读取有要求,需要手动指定读出来的数据的的dtype,如果指定的格式与保存时的不一致,则读出来的就是错误的数据。


       b = numpy.fromfile("filename.bin",dtype = **)


       读出来的数据是一维数组,需要利用


        b.shape = 3,4重新指定维数。


 


    2.numpy.save("filename.npy",a)


       利用这种方法,保存文件的后缀名字一定会被置为.npy,这种格式最好只用


       numpy.load("filename")来读取。


 


   3.numpy.savetxt("filename.txt",a)


      b =  numpy.loadtxt("filename.txt")


     用于处理一维和二维数组
### 将 NumPy 数组保存为 CSV 文件并设置小数点后四位精度和自定义表头 为了满足需求,可以通过 `numpy.savetxt` 方法将 NumPy 数组保存为 CSV 文件,并通过参数控制小数点精度。同时,利用 Python 的标准库模块 `csv` 或者手动拼接字符串的方式添加自定义的第一行表头[^1]。 以下是完整的解决方案: #### 实现代码 ```python import numpy as np import csv # 定义 NumPy 数组 data = np.array([ [0.123456, 1.234567], [2.345678, 3.456789], [4.567890, 5.678901] ]) # 自定义表头 header = ['Column1', 'Column2'] # 设置文件名 filename = 'output.csv' # 使用 numpy.savetxt 写入数据部分,保留小数点后 4 位 np.savetxt(filename, data, fmt='%.4f', delimiter=',', header=','.join(header), comments='') # 如果需要更复杂的表头处理,可以使用 csv 模块追加修改 with open(filename, mode='r+', newline='', encoding='utf-8') as f: content = f.readlines() # 插入表头到第一行 if not content[0].startswith(','.join(header)): content.insert(0, ','.join(header) + '\n') # 清空原有内容重新写入 f.seek(0) f.writelines(content) print(f"已成功将数据保存至 {filename} 并设置了小数点后 4 位精度及自定义表头.") ``` #### 解析 1. **创建数组**: 构建一个二维 NumPy 数组用于演示。 2. **定义表头**: 列出所需字段名称作为表头。 3. **保存数据**: 调用 `numpy.savetxt` 函数,其中 `fmt='%.4f'` 参数确保每项数值都以小数点后 4 位的形式存储[^1]。另外,`delimiter=','` 设定逗号分隔符,而 `header=','.join(header)` 和 `comments=''` 组合则负责在文件顶部加入表头而不被当作注释忽略[^2]。 4. **修正表头**: 若发现某些情况下表头未正常附加,则借助额外的文件操作补充完善。 --- ### 注意事项 尽管上述方法能达成目标,但在实际项目中推荐优先考虑 Pandas 库完成类似任务,因其提供了更为简洁高效的接口支持复杂场景下的数据帧管理和导出功能[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值