Python Numpy 数据读写
1、二进制文件读写
NumPy提供了几种处理二进制文件的方法,允许高效地读写大型数组数据。方法如下,
1)保存数组到二进制文件
numpy.save(file, arr, allow_pickle=True, fix_imports=True): 将数组保存到以.npy
扩展名的二进制文件中。file
是文件路径或类似文件的对象,arr
是要保存的数组。
使用示例:Python Numpy 数据读写
2)加载二进制文件的数组
numpy.load(file, mmap_mode=None, allow_pickle=True, fix_imports=True, encoding='ASCII'): 从.npy
或.npz
文件中加载数组。file
可以是文件路径、URL或类似文件的对象。
使用示例:Python Numpy 数据读写
3)保存多个数组到一个文件
numpy.savez(file, *args, **kwds): 以未压缩的.npz
格式保存多个数组。可以通过关键字参数为数组命名。
numpy.savez_compressed(file, *args, **kwds): 功能同numpy.savez
,但以压缩格式保存。
使用示例:Python Numpy 数据读写
4)读取多个数组
numpy.savez:将多个数组保存到一个以 .npz
格式的压缩文件中。使用numpy.load
并从 .npz
文件中提取数组。
使用示例:Python Numpy 数据读写
2、文本文件读写
loadtxt
函数用于从文本文件中读取 NumPy 数组。savetxt
函数用于将 NumPy 数组保存到文本文件中。
1)写入文本文件
numpy.savetxt(fname, X, fmt='%.18e', delimiter=' ', newline='\n', header='', footer='', comments='# '): 将数组写入文本文件。fname
是文件名或文件对象,X
是要保存的数组,fmt
是格式化字符串,delimiter
指定列与列之间的分隔符。
使用示例:Python Numpy 数据读写
2)读取文本文件
numpy.loadtxt(fname, dtype=float, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0): 从文本文件中加载数据。fname
可以是文件名或文件对象,dtype
指定数组数据类型。
使用示例:Python Numpy 数据读写
3、高级文件操作
umpy.genfromtxt:从文本文件中加载数据,并处理缺失值。适用于加载复杂或不规则的数据集。
numpy.genfromtxt(fname, dtype=float, comments='#', delimiter=None, skip_header=0, skip_footer=0, converters=None, missing_values=None, filling_values=None, usecols=None, names=None, excludelist=None, deletechars=None, replace_space='_', autostrip=False, case_sensitive=True, defaultfmt='f%i', unpack=None, usemask=False, loose=True, invalid_raise=True, max_rows=None, encoding='bytes')
参数说明:
参数 |
说明 |
fname |
要读取的文件、文件名或生成器。 |
dtype |
数据类型,默认为float。 |
comments |
注释字符,默认为'#'。 |
delimiter |
分隔符,默认为任何空格。 |
skip_header |
跳过文件开头的行数,默认为0。 |
skip_footer |
跳过文件末尾的行数,默认为0。 |
converters |
将数据列转换为特定类型的函数的字典。 |
missing_values |
指定缺失数据的规则。 |
filling_values |
用于替代缺失值的值。 |
usecols |
指定需要读取哪些列的整数或整数序列。 |
names |
设置为True时将第一行作为列名,或提供字符串列表作为列名。 |
excludelist |
指定需要排除的列名列表。 |
deletechars |
删除字段名中的特定字符。 |
replace_space |
用于替换字段名中的空格字符。 |
autostrip |
是否自动去除字段值前后的空格。 |
case_sensitive |
指定字段名的大小写敏感性。 |
defaultfmt |
当没有指定列名时,用于自动生成列名的格式。 |
unpack |
如果为True,返回的数组将被转置,即行变为列。 |
usemask |
如果为True,返回一个掩码数组。 |
loose |
如果为True,则会宽松解析非形式化的数字字符串。 |
invalid_raise |
如果为True,对于不符合规定的行将引发异常。 |
max_rows |
读取的最大行数。 |
encoding |
指定文件编码。 |
使用示例:Python Numpy 数据读写
注意:
在使用 numpy.save
和 numpy.savetxt
时,如果不指定扩展名,NumPy 会自动添加 .npy
或 .txt
。.npy
格式是一种二进制格式,具有高效存储和快速加载的优势,同时保持数组的数据类型和形状信息。