numpy模块读写文件与统计分析

一、读写文件

1、存储单个数组:save

存储的时候需要指定存储路径,不需要指定文件后缀

arr = np.arange(100).reshape(10,10)
np.save('arr',arr)
load_data = np.load('arr.npy')
print(load_data)

numpy模块读写文件与统计分析

如图所示:运行之后创建了arr.npy文件

运行结果:

numpy模块读写文件与统计分析

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文件

读取之后的结果:

numpy模块读写文件与统计分析

 

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=','))

运行结果:

numpy模块读写文件与统计分析

二、统计分析

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)

运行结果:

numpy模块读写文件与统计分析

2、去重 set 和 unique

arr = np.array([1,2,3,4,2,3,5])
# 利用集合去重
print(set(arr))
# unique
print(np.unique(arr))

运行结果:

numpy模块读写文件与统计分析

3、重复 tile和repeat

arr = np.arange(1,10,1).reshape(3,3)
print(np.tile(arr,2)) # 整体重复
print(arr.repeat(2,axis=0)) # 单个重复 纵向重复

运行结果:

numpy模块读写文件与统计分析

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))

运行结果:

numpy模块读写文件与统计分析

(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))

运行结果:

numpy模块读写文件与统计分析

(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))

运行结果:

numpy模块读写文件与统计分析

(4)标准差 std

arr = np.arange(1,10,1).reshape(3,3)
print(arr)
print('标准差',np.std(arr))
print('纵向标准差',arr.std(axis=0))

运行结果:

numpy模块读写文件与统计分析