Numpy文件操作
一:二进制文件
概念:如果一个文件的后缀是 .npy / .npz 则为一个二进制文件
-
二进制文件生成
np.save(“file_name”,array)
注:save默认保存的为.npy文件,file_name可不加后缀,且只能保存一个数组
arr1 = np.random.random(100).reshape((10,10)) np.save("arr1",arr1)
-
二进制文件读取
np.load(“file_name”)
注:读取时文件名必须加后缀名
data = np.load("arr1.npy") print(data)
-
多个数组的保存
np.savez(“file_name”,array1,array2,…)
arr2 = np.random.random(100).reshape((10,10)) np.savez("arr2",arr1,arr2)
-
多个数组的读取
np.load(“arr2.npy”)
我们在存储多个数组时,其实是存储了两个数组文件,我们可以通过列表索引的方式将数组的内容取出来。
data = np.load("arr2.npy") # 读取数组 print(data) # 结果 <numpy.lib.npyio.NpzFile object at 0x7fc5bf69c1f0> # 查看npzfile下的npy文件: print(list(data)) # 结果 ['arr_0', 'arr_1'] # 取值 print(data["arr_0"])
二:文本文件
-
保存
np.savetxt(“file_name”,arr1,fmt="%d",delimiter=",")
delimiter:分隔符
fmt:格式
arr1 = np.array([[14,4,46,11],[11,44,33,22],[10,32,22,17]]) # 将数组保存为文本格式 np.savetxt("arr1",arr1,fmt="%d",delimiter=",")
-
读取
np.loadtxt(“file_name”,delimiter=",",dtype=“str”)
# 读取文件 data = np.loadtxt("arr1",delimiter=",",dtype="str") print(data) # 结果 [['14' '4' '46' '11'] ['11' '44' '33' '22'] ['10' '32' '22' '17']]