NumPy能够以文本或二进制格式保存数据和读取数据。这里只讨论NumPy的内置二进制格式,因为大多数用户都会使用panda和其他工具加载文本或表格数据。np.save
和np.load
可以有效的存储和加载磁盘上的数组数据。数组默认保存在未压缩的原始二进制文件中,其文件扩展名.npy:
In [1]: import numpy as np
In [2]: arr = np.arange(10)
In [3]: np.save('some_array',arr) #保存
这时你退出ipython(使用exit()退出),用ls查看当前目录里的文件,会发现多了一个叫“some_array.npy”的文件,就是你刚刚保存的数组:
$ ls
some_array.npy
再次进入ipython,读取数组:
In [4]: np.load('some_array.npy') #读取
Out[4]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
如果你想保存一个以上的数组怎么办?
In [1]: import numpy as np
In [2]: arr = np.arange(10)
In [3]: arr #第一个数组
Out[3]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
In [4]: arr2 = np.arange(15)
In [5]: arr2 #第二个数组
Out[5]: array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
In [6]: np.savez('array_archive.npz',a=arr, b=arr2) #把两个数组保存到同一个文件里。这里是保存没有压缩的文件
In [7]: arch = np.load('array_archive.npz') #调取文件
In [8]: arch['a'] #查看a数组
Out[8]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
In [9]: arch['b'] #查看b数组
Out[9]: array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
如果你想把文件进行压缩,你可以使用下面的方法,调取文件的方法是一样的,只是保存的方法不一样:
In [15]: np.savez_compressed('arrays_compressed.npz', a=arr, b=arr2)
In [16]: arch =np.load('arrays_compressed.npz')
In [17]: arch['a']
Out[17]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
In [18]: arch['b']
Out[18]: array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
网友评论