最近更新: 2020-9-10
第一章.数据IO
NumPy提供了多种存取数组内容的文件操作函数。保存数组数据的文件可以是二进制格式或者文本格式。二进制格式的文件又分为NumPy专用的格式化二进制类型和无格式类型
一,tofile()和fromfile()
- tofile()将数组中的数据以二进制格式写进文件
- tofile()输出的数据不保存数组形状和元素类型等信息
- fromfile()函数读回数据时需要用户指定元素类型,并对数组的形状进行适当的修改
从上面的例子可以看出,在读入数据时:需要正确设置dtype参数,并修改数组的shape属性才能得到和原始数据一致的结果。无论数据的排列顺序是C语言格式还是Fortran语言格式,tofile()都统一使用C语言格式输出。此外如果指定了sep参数,则fromfile()和tofile()将以文本格式对数组进行输入输出。sep参数指定的是文本数据中数值的分隔符。
二.save()和load()
save()
1 | from tempfile import TemporaryFile |
- 如果想将多个数组保存到一个文件中,可以使用savez()
- savez()的第一个参数是文件名,其后的参数都是需要保存的数组,也可以使用关键字参数为数组起名
- 非关键字参数传递的数组会自动起名为arr_0、arr_1、…。
- savez()输出的是一个扩展名为npz的压缩文件,其中每个文件都是一个save()保存的npy文件,文件名和数组名相同
- load()自动识别npz文件,并且返回一个类似于字典的对象,可以通过数组名作为键获取数组的内容
1 |
第二章数据类型
固定长度的整型,包括有符号整型或无符号整型。
1.整型
整型范围
- Int8 - [-128 : 127]
- Int16 - [-32768 : 32767]
- Int32 - [-2147483648 : 2147483647]
- Int64 - [-9223372036854775808 : 9223372036854775807]
无符号整型范围
- UInt8 - [0 : 255]
- UInt16 - [0 : 65535]
- UInt32 - [0 : 4294967295]
- UInt64 - [0 : 18446744073709551615]
2.浮点数据类型
single数据类型
存储有符号的 IEEE 格式 32 位(4 个字节)单精度浮点数,负数取值范围为 -3.4028235E+38~-1.401298E-45,正数取值范围为 1.401298E-45 到 3.4028235E+38。单精度数值存储实数数值的近似值。
3.nan值数据类型
1 | import numpy as np |
第三章数组形状
1改变数组形状
1.1将数组变为具体的形状
reshape(shape) : 不改变数组元素,返回一个shape形状的数组,原数组不变。是对每行元素进行处理
resize(shape) : 与.reshape()功能一致,但修改原数组
1 | In [1]: a = np.arange(20) |
.swapaxes(ax1,ax2) : 将数组n个维度中两个维度进行调换,不改变原数组
1 | In [6]: a.swapaxes(1,0) |
1.2将多维数组转为一维数组
ravel():如果没有必要,不会产生源数据的副本
flatten():返回源数据的副本
squeeze():只能对维数为1的维度降维
另外,reshape(-1)也可以“拉平”多维数组
$$ —- \mathcal{End} —- $$