使用数组进行文件输入和输出
NumPy可以在硬盘中将数据以文本或二进制文件的形式进行存入硬盘或由硬盘载入。
np.save和np.load是高效存取硬盘数据的两大工具函数。数组在默认情况下是以未压缩的格式进行存储的,后缀名是.npy:
In [122]: arr = np.arange(10)
In [123]: np.save('some_array',arr)
如果文件存放路径中没写.npy时,后缀名会被自动加上。硬盘上的数组可以使用np.load进行载入:
In [124]: np.load('some_array.npy')
Out[124]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
你还可以使用np.savez并将数组作为参数传递给该函数,用于在未压缩文件中保存多个数组,并且在载入一个.npy文件的时候,你会获得一个字典型的对象,并通过该对象很方便地载入单个数组:
In [126]: np.savez('array',a=arr,b=arr)
In [127]: arch = np.load('array.npz')
In [128]: arch['a']
Out[128]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
如果你的数据已经压缩好了,你可能会想要使用numpy.savez_compressed将数据存入已经压缩的文件:
np.savez_compressed('array_compressed',a=arr,b=arr)
线性代数
线性代数,比如矩阵乘法、分解、行列式等方阵数学,是所有数组类库的重要组成部分。和Matlab等其他语言相比,NumPy的线性代数中所不同的是*是矩阵的逐元素乘积,而不是矩阵的点乘积.
In [130]: a = np.arange(6).reshape(2,3)
In [131]: a.T
Out[131]:
array(