numpy数组的存入和读取:
ar=np.random.rand(2,5)
print(ar)
[[0.91231033 0.69470799 0.07200474 0.92224321 0.06462535]
[0.31852826 0.53709158 0.75866947 0.06308918 0.23054911]]
numpy.save(),存入数组,numpy.load(),读取数组:
np.save('ar.npy',ar) #将ar储存到扩展名为.npy的文件中
ar_load=np.load('ar.npy') #读取存储的文件
print(ar_load)
[[0.91231033 0.69470799 0.07200474 0.92224321 0.06462535]
[0.31852826 0.53709158 0.75866947 0.06308918 0.23054911]]
numpy.savez():将多个数组保存到一个压缩文件中,将数组以关键字参数的形式传入即可。
a=np.random.randint(2,4,size=(2,2))
b=np.random.randint(3.5,size=3)
print(a)
print(b)
[[2 2]
[3 2]]
[1 0 2]
#这里我原本按照《利用python进行数据分析》上面的代码运行,发生错误:
np.savez('some_array',a=arr,b=arr)
arload=np.load('some_array.npz')
print(arload['b'])
Traceback (most recent call last):
File "<ipython-input-59-024733f71d69>", line 1, in <module>
np.savez('some_array',a=arr,b=arr)
NameError: name 'arr' is not defined
不知道为什么会错误啊,求大神指点(ˉ▽ˉ;)...
百度查询相关资料后,找到了另一种方法,:
np.savez('some_array.npz',a,b) #多个数组的存储
arload=np.load('some_array.npz')
print(arload['arr_0']) #读取数组
print(arload['arr_1'])
[[2 2]
[3 2]]
[1 0 2]
这里的[‘arr_0’]也让我很懵逼,不知道为什么是这个,但是可以依次读取,为什么arload[0]和arload[‘0’]都不行捏??
txt格式的数组存储与读取:
np.savetxt('ar.txt',ar,delimiter=',') #delimiter设置分隔符
ar_load1=np.loadtxt('ar.txt',delimiter=',')
print(ar_load1)
[[0.91231033 0.69470799 0.07200474 0.92224321 0.06462535]
[0.31852826 0.53709158 0.75866947 0.06308918 0.23054911]]