大家好,又见面了,我是你们的朋友全栈君。
读写文件
NumPy 文件读写主要有二进制的文件读写和文件列表形式的数据读写两种形式
(1) save 函数是以二进制的格式保存数据。 格式: np.save (“./save_arr “, arr1)
(2) load 函数是从二进制的文件中读取数据。 格式: np.load(“./ save_arr.npy”)
(3) savez 函数可以将多个数组保存到一个文件中。 格式: np.savez(‘./savez_arr’,arr1,arr2)
(4) 存储时可以省略扩展名,但读取时不能省略扩展名
读取文本格式的数据(TXT CSV 格式)
(1) savetxt 函数是将数组写到某种分隔符隔开的文本文件中。 格式: np.savetxt(“./arr.txt”, arr, fmt=”%d”, delimiter=”,”)
## fmt=”%d”表示保存为整数,delimiter=”,”表示用’,’隔开。
(2) loadtxt 函数执行的是把文件加载到一个二维数组中。 格式: np.loadtxt(“./arr.txt”,delimiter=”,”)
(3) genfromtxt 函数面向的是结构化数组和缺失数据。 格式: np.genfromtxt(“./arr2.txt”, delimiter = “,”)
二进制文件读写
(1) save() 函数是以二进制的格式保存数据; load() 函数是从二进制的文件中读取数据
import numpy as np
arr1 = np.arange(40).reshape((5,8))
print(arr1)
# 保存二进制文件,npy格式是一个数组的文件保存
np.save('./save_arr',arr1)
arr3 = np.load('./save_arr.npy') # 读取二进制文件
print(arr3)
(2) savez() 函数可以将多个数组保存到一个文件中
import numpy as np
arr1 = np.arange(40).reshape((5,8))
arr2 = np.arange(1,10,1)
# print(arr1)
# print(arr2)
np.savez('./savez_arr',arr1,arr2) # 保存二进制文件,npz多个数组的文件保存
load_data = np.load('./savez_arr.npz') # 读取二进制文件
print(load_data)
print(type(load_data))
# 可遍历文件中的键值(也可以通过开启断点来获取)
# for i,k in load_data.items():
# print(i,k)
# 结果:
# arr_0 [[ 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]]
# arr_1 [1 2 3 4 5 6 7 8 9]
print(load_data['arr_0'])
print(load_data['arr_1'])
文本文件读写
(1) savetxt() 函数是将数组写到某种分隔符隔开的文本文件中; loadtxt() 函数执行的是把文件加载到一个二维数组中
import numpy as np
arr = np.arange(0,9,1).reshape(3,-1) # -1的意思是根据行数自动匹配列数
print(arr)
# 结果:
# [[0 1 2]
# [3 4 5]
# [6 7 8]]
# fmt='%d'表示保存为整数,delimiter=","表示用','隔开
np.savetxt('arr.txt',arr,fmt='%d',delimiter=',') # 保存
load_txt = np.loadtxt('arr.txt',delimiter=',') # 读取
print(load_txt)
# 结果:
# [[ 0. 1. 2.]
# [ 3. 4. 5.]
# [ 6. 7. 8.]]
(2) genfromtxt 函数面向的是结构化数组和缺失数据(基本操作)
import numpy as np
arr = np.arange(0,9,1).reshape(3,-1) # -1的意思是根据行数自动匹配列数
# print(arr)
# 结果:
# [[0 1 2]
# [3 4 5]
# [6 7 8]]
# fmt='%d'表示保存为整数,delimiter=","表示用','隔开
np.savetxt('./arr2.txt',arr,fmt='%d',delimiter=',') # 保存
# skip_header从哪行开启读取
load_txt = np.genfromtxt('./arr2.txt',delimiter=',',skip_header=1) # 读取
print(load_txt)
# 结果:
# [[ 3. 4. 5.]
# [ 6. 7. 8.]]
# 二维数组切片方式
print(load_txt[1:2,0:3])
# 结果:
# [[ 6. 7. 8.]]
print(load_txt[0:3,0])
# 结果: [ 3. 6.]
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/140580.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...