numpy模块读写文件与统计分析
一、读写文件
1、存储单个数组:save
存储的时候需要指定存储路径,不需要指定文件后缀
arr = np.arange(100).reshape(10,10)
np.save('arr',arr)
load_data = np.load('arr.npy')
print(load_data)
如图所示:运行之后创建了arr.npy文件
运行结果:
2、存储多个数组 savez
arr = np.arange(100).reshape(10,10)
arr1 = np.arange(1,10,1).reshape(3,3)
np.savez('arrs',arr,arr1)
file = np.load('arrs.npz')
print(list(file))
print(file['arr_0'])
print(file['arr_1'])
运行之后创建了arrs.npz文件
读取之后的结果:
3、将数组存储在文本文档中
文本文件 :包含txt和csv文件
arr = np.arange(100).reshape(10,10)
np.savetxt('arr.txt',arr,fmt='%d',delimiter=',')
# fmt 表示存储的数据类型 delimiter表示分隔符
print(np.loadtxt('arr.txt',delimiter=','))
运行结果:
二、统计分析
1、排序:sort、argsort
import numpy as np
arr = np.random.randint(1,10,size=[3,3])
arr.sort(axis=0) # axis=0表示纵向排序
print(arr)
arr.sort(axis=1) # axis=1表示横向排序
print(arr)
arr2 = np.array([1,6,4,5,3,2])
print(arr2.argsort()) # 返回的是从小到大排序后的元素的索引值
index= arr2.argsort()
print(arr2[index][0]) # 取最小值
print(arr2[index[:5]]) # 取最小值前五个
arr2.sort()
print(arr2)
运行结果:
2、去重 set 和 unique
arr = np.array([1,2,3,4,2,3,5])
# 利用集合去重
print(set(arr))
# unique
print(np.unique(arr))
运行结果:
3、重复 tile和repeat
arr = np.arange(1,10,1).reshape(3,3)
print(np.tile(arr,2)) # 整体重复
print(arr.repeat(2,axis=0)) # 单个重复 纵向重复
运行结果:
4、统计函数
sum 求和函数 mean: 求平均值 var:方差 std:标准差
(1)求和
arr = np.arange(1,10,1).reshape(3,3)
print(arr)
print('元素总和:',np.sum(arr))
print('纵向元素总和',np.sum(arr,axis=0))
print('横向元素总和',np.sum(arr,axis=1))
运行结果:
(2)求平均值
arr = np.arange(1,10,1).reshape(3,3)
print(arr)
print('全部元素平均值',np.mean(arr))
print('纵向元素平均值',np.mean(arr,axis=0))
print('横向元素平均值',np.mean(arr,axis=1))
运行结果:
(3)方差 var
arr = np.arange(1,10,1).reshape(3,3)
print(arr)
print('方差',np.var(arr))
print('纵向方差',arr.var(axis=0))
print('横向方差',arr.var(axis=1))
运行结果:
(4)标准差 std
arr = np.arange(1,10,1).reshape(3,3)
print(arr)
print('标准差',np.std(arr))
print('纵向标准差',arr.std(axis=0))
运行结果: