Python的Numpy模块可用于存储和读取数据:

1.将一个数组存储为二进制文件

Numpy.save:将一个数组以.npy的格式保存为二进制文件

调用格式:numpy.save(file, arr, allow_pickle=True, fix_imports=True)

file的格式:file,str,or pathlib.Path. 如果file是一个文件对象,则文件名不会被改变;如果file是一个字符串或者路径,并且没有 .npy扩展,则会在后面加上 .npy的扩展

arr: 要保存的数组对象

Numpy.load:从.npy .npz或者pickled文件中加载数组或者pickled对象

调用格式:numpy.load(filemmap_mode=Noneallow_pickle=Falsefix_imports=Trueencoding='ASCII')

file的格式:  file-like object, string, or pathlib.Path.类似文件对象(file_like object)必须支持seek()read()方法。pickled文件要求file_like object必须支持readline()方法

encoding:读取python 2中的字符串时使用的编码方式。仅当在Python 3中加载Python 2生成的pickled文件时有用,该文件包括含有对象数组的npy / npz文件。不允许使用“ latin1”,“ ASCII”和“ bytes”以外的其他值,因为它们会破坏数字数据。默认值:“ ASCII”

返回:数组、元组或者字典等

import numpy as np

arr = np.arange(12).reshape(3,4)
# 保存arr数组
np.save('arr.npy', arr)
# 读取arr文件
a = np.load('arr.npy')
print(a)

2.将一个数组存储为文本文件

Numpy.savetxt将一个数组保存为文本文件,只能存储一维和二维数组

调用格式:numpy.savetxt(fname, X, fmt='%.18e', delimiter=' ', newline='n', header='', footer='', comments='# ', encoding=None)

fname:filename or file handle. 如果文件名以.gz结尾,文件将自动保存为gzip的压缩格式

X:要保存的一维或者二维数组对象

fmt:规定保存的数组元素类型,默认为%.18e

delimiter:字符串或者字符,用来分隔列,默认为空格

Numpy.loadtxt从一个文本文件中加载数据,文本文件每一行的数值个数必须相同

调用格式:numpy.loadtxt(fname, dtype=<class 'float'>, comments='#', delimiter=None, converts=None, skiprows=0, usecols=None, unpack=False, ndmin=0, encoding='bytes', max_rows=None)

fname:要读取的文件,可以是.gz或者.bz2的压缩文件

dtype:指定数组的数据类型,默认为float

delimiter:用于分隔元素,要与文件中的分割符一致,默认为空格

返回:ndarray

import numpy as np

arr = np.arange(12).reshape(3,4)
# 将一个数组保存为csv文件
np.savetxt('arr.csv', arr, delimiter=',')
# 读取文件
arr_file = np.loadtxt('arr.csv', dtype=np.int, delimiter=',')
print(arr_file)

3.将一个数组存储为文本文件或者二进制文件

(这种方法会造成数组的信息丢失,不适合精确存储)

ndarray.tofile:将一个数组存储为文本文件或者二进制文件

调用格式:nadrray.tofile(fid, sep="", format="%s")

fid:可以是打开的文件对象或者包含文件名的字符串

sep:分隔符,当sep为空时,以二进制的方式写入

format:输出的格式字符串

Numpy.fromfile:从文本或二进制文件中读取数据

调用格式:numpy.fromfile(file, dtype='float', count=-1, sep='', offset=0)

dtype:规定返回的数组的数据类型

count:读取的元素个数,-1为读取整个文件,默认-1,

offset:用于二进制文件,规定当前文件位置的偏移量(以字节为单位)

import numpy as np

arr = np.arange(12).reshape(3,4)
arr.tofile('arr.txt', sep=',', format='%d')
# 以存储后的形式输出
arr_out1 = np.fromfile('arr.txt', dtype=np.int, sep=',')
print(arr_out1)
# 以存储前的形式输出
arr_out2 = np.fromfile('arr.txt', dtype=np.int, sep=',').reshape(3,4)
print(arr_out2)

4.将多个数组存入一个文件

Numpy.savez:将多个数组以未压缩的.npz格式存入一个文件中

调用格式:numpy.savez(file, *args, **kwds)

如果传入的数组参数没有给相应的键,则函数会自动给每个数组参数一个名字,从arr_0、arr_1、arr_2依次递推;如果给定了键,则可以用给定的键。

import numpy as np

arr1 = np.arange(12).reshape(3, 4)
arr2 = np.random.randint(0, 12, (3, 4)) # 不给数组参数相应的键
np.savez('array.npz', arr1, arr2)
f = np.load('array.npz')
print(f['arr_0'])
print(f['arr_1']) # 给数组参数相应的键
np.savez('array2.npz', arr1=arr1, arr2=arr2)
f2 = np.load('array2.npz')
print(f2['arr1'])
print(f2['arr2'])

5.将多个数组以压缩的形式存入一个文件

Numpy.savez_compressed:将多个数组以压缩后的.npz格式保存到一个文件中

调用格式:numpy.savez_compressed(file, *args, **kwds)

savez_compressed的用法与savez类似

最新文章

  1. SQL Server 中master..spt_values的应用
  2. 参考__Larvel
  3. Java——URL和URLConnection
  4. Memcache升级版:CouchBase的安装配置与使用说明
  5. BZOJ 3043
  6. window.parent 判断是否是被嵌入iframe里面
  7. IAP (In-App Purchase)中文文档
  8. js 常用正则表达式表单验证代码
  9. HDU 3183 A Magic Lamp(二维RMQ)
  10. 在windows上搭建ipv6代理
  11. 第一周作业.四则运算生成器(基于python)
  12. ZOJ2975 伪数组压缩+组合数
  13. hibernate基本的配置与验证
  14. 派生 de rive
  15. springBoot(2)---快速创建项目,初解jackson
  16. linux云主机cpu一直很高降不下来,系统日志报nf_conntrack: table full, dropping packet.
  17. 简易数据库实现 UNIX环境高级编程(APUE)第二十章 A Database Library
  18. 深入浅出的webpack构建工具---PostCss(五)
  19. charles代理以及关于其抓取https信息的操作
  20. JavaScript -基础- 函数与对象

热门文章

  1. Apache+Tomcat负载均衡
  2. P2579 [ZJOI2005]沼泽鳄鱼(邻接矩阵,快速幂)
  3. Scrapy进阶知识点总结(五)——Settings
  4. PHP 中四大经典排序算法
  5. diff算法
  6. Zabbix-(五)监控Docker容器与自定义jvm监控项
  7. shell中tar加密打包
  8. VMware虚拟机Linux中增加磁盘空间的扩容操作
  9. 五分钟学会HTML5的WebSocket协议
  10. Java :一文掌握 Lambda 表达式