废话不多说,直接开干。
1. NumPy文件读写方法
1.1 保存文件
1.1.1 保存一个数组
# 二进制数据存储
# 保存一个数组
a = np.arange(10).reshape(2, 5)
b = np.arange(6).reshape(3, 2)
np.save("E://data analysis by python//a", a)
1.1.2 保存多个数组
# 保存多个数组
np.savez("E://data analysis by python//a_b", a, b)
print(a, '\n', b)
1.1.3 保存数组至文本文件中
# 保存数组至文本文件中
# fmt="%f"表示保存为浮点型,delimiter=","表示数据间分隔符为","
np.savetxt("E:/data analysis by python/a.txt", a, fmt="%f", delimiter=",")
1.2 读取文件
1.2.1 读取单个文件
# 二进制文件读取
# 读取单个文件
c = np.load("E://data analysis by python//a.npy")
1.2.2 读取多个文件
# 读取多个文件
d = np.load("E://data analysis by python//a_b.npz")
print(c, '\n', d['arr_0'], '\n', d['arr_1'])
1.2.3 读取文本文件
# 读取文本文件
a = np.loadtxt("E:/data analysis by python/a.txt", delimiter=",")
b = np.genfromtxt("E:/data analysis by python/a.txt", delimiter=",")
print(a, b)
2. 数据排序
2.1 sort函数排序
其中,请注意:
- seed为随机数种子,随机数种子固定,随机数不变;
- 请注意d,e,f返回值为None,因为sort排序是直接对数组操作;
- sort排序后,a,b,c不可逆,变成排序后的数组,d,e,f为中间变量。
# 数据排序
# seed为随机数种子,随机数种子固定,随机数不变
a = np.random.seed(10)
b = np.random.randint(1, 10, size=10)
c = np.random.randint(1, 10, size=(3, 3))
print(a, b, c)
# 直接排序
d = b.sort()
# 沿着横轴对每一行进行排序
e = c.sort(axis=1)
# 沿着纵轴对每一列进行排序
f = c.sort(axis=0)
print(a, b, c)
print(d, e, f)
2.2 argsort函数排序
# argsort函数排序,返回重新排序值下标
g = b.argsort()
3. # 数据去重与重复
3.1 数据去重
# 数据去重,b、c能达到相同结果
a = np.array(['赵', '钱', '孙', '李', '周', '赵', '钱'])
b = np.unique(a)
c = set(a)
print(a, b, c)
3.2 数组重复
# 重复数组两次
a = np.arange(5)
b = np.tile(a, 2)
# 重复数组元素两次
a = np.array([[1, 2, 3], [2, 1, 3], [1, 4, 3]])
# 按行进行元素重复
b = a.repeat(2, axis=0)
# 按列进行元素重复
c = a.repeat(2, axis=1)
print(a, b, c)
4. 常用函数
4.1 求和函数
a = np.array([[1, 2, 3], [2, 1, 3], [1, 4, 3]])
# 数组元素求和
b = np.sum(a)
# 沿横轴求和
c = a.sum(axis=1)
# 沿纵轴求和
d = a.sum(axis=0)
# 求元素累计和
m = np.cumsum(a)
# 求元素累计积
n = np.cumprod(a)
4.2 求均值函数
# 数组元素求均值
e = np.mean(a)
# 沿横轴求均值
f = a.mean(axis=1)
# 沿纵轴求均值
g = a.mean(axis=0)
4.3 求标准差、方差函数
# 求数组标准差
h = np.std(a)
# 求数组方差
i = np.var(a)
4.4 求最大、最小值函数
# 求数组最大值
j = np.max(a)
# 求数组最小值
k = np.min(a)
print(a,b,c,d,'\n')
print(e,f,g,'\n',h,j,k,m,n)
网友评论