save函数以二进制的格式保存数据,load函数从二进制的文件中读取数据。
二进制数据的存储:
import numpy as np
arr=np.arange(100).reshape(10,10)#创建一个数组
np.save("C:/Users/ausu/tmp/save_arr",arr)#保存数组
print ('保存的数组为:\n',arr)
保存的数组为:
[[ 0 1 2 3 4 5 6 7 8 9]
[10 11 12 13 14 15 16 17 18 19]
[20 21 22 23 24 25 26 27 28 29]
[30 31 32 33 34 35 36 37 38 39]
[40 41 42 43 44 45 46 47 48 49]
[50 51 52 53 54 55 56 57 58 59]
[60 61 62 63 64 65 66 67 68 69]
[70 71 72 73 74 75 76 77 78 79]
[80 81 82 83 84 85 86 87 88 89]
[90 91 92 93 94 95 96 97 98 99]]
多个数组的存储:
import numpy as np
arr1=np.array([[1,2,3],[4,5,6]])
arr2=np.arange(0,1.0,0.1)
np.savez('C:/Users/ausu/tmp/savez_arr',arr1,arr2)
print('保存的数组1为:',arr1)
print('保存的数组2为:',arr2)
保存的数组1为: [[1 2 3]
[4 5 6]]
保存的数组2为: [0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
二进制文件的读取:
#二进制文件的读取
loaded_data=np.load("C:/Users/ausu/tmp/save_arr.npy")#读取单个数组的文件
print('读取的数组为:\n',loaded_data)
读取的数组为:
[[ 0 1 2 3 4 5 6 7 8 9]
[10 11 12 13 14 15 16 17 18 19]
[20 21 22 23 24 25 26 27 28 29]
[30 31 32 33 34 35 36 37 38 39]
[40 41 42 43 44 45 46 47 48 49]
[50 51 52 53 54 55 56 57 58 59]
[60 61 62 63 64 65 66 67 68 69]
[70 71 72 73 74 75 76 77 78 79]
[80 81 82 83 84 85 86 87 88 89]
[90 91 92 93 94 95 96 97 98 99]]
读取含有多个数组的文件:
#读取包含多个数组的文件
loaded_data1=np.load("C:/Users/ausu/tmp/savez_arr.npz")
print('读取的数组1为:',loaded_data1['arr_0'])
print('读取的数组2为:',loaded_data1['arr_1'])
读取的数组1为: [[1 2 3]
[4 5 6]]
读取的数组2为: [0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
文件的存储与读取 :读取TXT或CSV格式的文件常用的是loadtxt函数
savetxt函数可将数组写到以某种分割符隔开的文本文件中,语法格式如下:
np.savetxt(fname,x,fmt='%.18e',delimiter=',',newline='\n',header='',footer='',comments='#'
参数“fname“是文件名 。参数x为数组数据,“delimiter”为数据分割符
文件的存储与读取: save函数和loadtxt函数
arr=np.arange(0,12,0.5).reshape(4,-1)
print('创建的数组为:',arr)
创建的数组为: [[ 0. 0.5 1. 1.5 2. 2.5]
[ 3. 3.5 4. 4.5 5. 5.5]
[ 6. 6.5 7. 7.5 8. 8.5]
[ 9. 9.5 10. 10.5 11. 11.5]]
#fmt="%d"表示保存为整数
np.savetxt("C:/Users/ausu/tmp/arr.txt",arr,fmt="%d",delimiter=",")
#读入的时候也需要指定逗号分隔
loaded_data=np.loadtxt("C:/Users/ausu/tmp/arr.txt",delimiter=",")
print('读取的数组为:',loaded_data)
读取的数组为: [[ 0. 0. 1. 1. 2. 2.]
[ 3. 3. 4. 4. 5. 5.]
[ 6. 6. 7. 7. 8. 8.]
[ 9. 9. 10. 10. 11. 11.]]
扫描二维码关注公众号,回复:
6112138 查看本文章