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 格式是一种二进制格式,具有高效存储和快速加载的优势,同时保持数组的数据类型和形状信息。
浙公网安备 33010602011771号