2.3 利用NumPy进行统计分析

news/2024/10/31 7:32:47/

2.3 利用NumPy进行统计分析

  • 2.3.1 读/写文件
    • 1、二进制的文件读写
    • 2、读取文本格式的数据
  • 2.3.2 使用数组进行简单统计分析
    • 1、排序
    • 2、去重与重复数据
    • 3、常用的统计函数

2.3.1 读/写文件

NumPy文件读写主要有二进制的文件读写和文件列表形式的数据读写两种形式

1、二进制的文件读写

save函数是以二进制的格式保存数据。 np.save(“…/tmp/save_arr”,arr)
load函数是从二进制的文件中读取数据。 np.load(“…/tmp/save_arr.npy”)
savez函数可以将多个数组保存到一个文件中。 np.savez(‘…/tmp/savez_arr’,arr1,arr2)
存储时可以省略扩展名,但读取时不能省略扩展名。

# 利用NumPy进行统计分析
# 2.3.1读写文件
# 1、二进制数据存储
# 一个数组存储,用save()方法,后缀是.npy
# 存储时可以省略扩展名,但是读取时不能省略。
import numpy as np
arr = np.arange(25).reshape(5,5)
np.save("F:/test/save_arr",arr) #保存数组
print(arr)
data1 = np.load("F:/test/save_arr.npy") # 读取数据
print(data1)
# 2、多个数组存储,使用savez(),后缀是.npz
arr1 = np.array([[1,2,3],[4,5,6]])
arr2 = np.arange(0,1,0.2)
np.savez("F:/test/save_arr2",arr1,arr2) #保存数组
print(arr1)
print(arr2)
data2 = np.load("F:/test/save_arr2.npz")
print(data2['arr_0'])
print(data2['arr_1'])

在这里插入图片描述
在这里插入图片描述

2、读取文本格式的数据

savetxt函数是将数组写到某种分隔符隔开的文本文件中。
np.savetxt(“…/tmp/arr.txt”, arr, fmt=“%d”, delimiter=“,”)
loadtxt函数执行的是把文件加载到一个二维数组中。
np.loadtxt(“…/tmp/arr.txt”,delimiter=“,”)
genfromtxt函数面向的是结构化数组和缺失数据。
np.genfromtxt(“…/tmp/arr.txt”, delimiter = “,”)

# 3、文件存储与读写
arr = np.arange(0, 12, 1).reshape(4, -1)
print(arr)
np.savetxt("F:/test/save_arr.txt", arr, fmt="%d", delimiter=',')
data = np.loadtxt("F:/test/save_arr.txt", delimiter=',')
print(data)
# 使用genfromtxt读取数据
data2 = np.genfromtxt("F:/test/save_arr.txt", delimiter=',')
print(data2)

在这里插入图片描述

2.3.2 使用数组进行简单统计分析

1、排序

直接排序
sort函数是最常用的排序方法:arr.sort()
sort函数也可以指定一个axis参数,使得sort函数可以沿着指定轴对数据集进行排序。axis=1为沿横轴排序; axis=0为沿纵轴排序。
间接排序
argsort函数返回值为重新排序值的下标。 arr.argsort()
lexsort函数返回值是按照最后一个传入数据排序的。 np.lexsort((a,b,c))

# 2.3.2 使用函数进行简单的统计分析
# 1、排序
np.random.seed(0)  #设置随机种子
arr = np.random.randint(1, 10, size=10)
print(arr)
arr.sort  # 直接排序
print(arr)
# 二维数组
np.random.seed(0)  #设置随机种子
arr2 = np.random.randint(1,10, size=(3,3))
print(arr2)
arr2.sort(axis=1)  # axis=1沿着横轴排序
print(arr2)
arr2.sort(axis=0)  # axis=0沿着纵轴排序
print(arr2)
# argsort()排序
np.random.seed(0)  #设置随机种子
arr = np.random.randint(1, 10, size=6)
print(arr)
print(arr.argsort())  # argsort()返回的是新数据在原数据序列中的位置
# lexsort()排序
a = np.array([3,2,6,4,5])
b = np.array([50, 30, 40, 20, 10])
c = np.array([400, 300, 600, 100, 200])
d = np.lexsort((a,b,c))  # lexsort()只接收一个参数,即(a,b,c)
# 多个键值排序时是按照最后一个传入数据计算的
print(list(zip(a[d], b[d], c[d])))

在这里插入图片描述

2、去重与重复数据

去重:
通过unique函数可以找出数组中的唯一值并返回已排序的结果。
重复:
np.tile(A,reps)
tile函数主要有两个参数,参数“A”指定重复的数组,参数“reps”指定重复的次数。
numpy.repeat(a, repeats, axis=None)
repeat函数主要有三个参数,参数“a”是需要重复的数组元素,参数“repeats”是重复次数,参数“axis”指定沿着哪个轴进行重复,axis = 0表示按行进行元素重复;axis = 1表示按列进行元素重复。
这两个函数的主要区别在于,tile函数是对数组进行重复操作,repeat函数是对数组中的每个元素进行重复操作。

# 2、去重与重复数据
arr = np.array([5,2,3,5,3,2,4,3])
print(arr)
arr = np.unique(arr)   # 去重且排序  == sorted(set(arr))
print(arr)
# 使用tile()和repeat()函数实现数据重复
arr = np.arange(5)
print(arr)
print(np.tile(arr,3))  # 重复三次
print(arr.repeat(3))  # 重复三次

在这里插入图片描述

3、常用的统计函数

当axis=0时,表示沿着纵轴计算。当axis=1时,表示沿着横轴计算。默认时计算一个总值。
在这里插入图片描述

# 3、常用的统计函数
arr = np.arange(1,13,1).reshape(3,4)
print(arr)
print(np.sum(arr))  # 和
print(arr.sum(axis=1)) # 横轴的和
print(arr.sum(axis=0)) # 纵轴的和
print(np.mean(arr))   # 均值
print(arr.mean(axis=1)) # 横轴的均值
print(arr.mean(axis=0)) # 纵轴的均值
print(np.std(arr))   # 标准差
print(np.var(arr))   # 方差
print(np.min(arr))   # 最小值
print(np.max(arr))   # 最大值
print(np.argmin(arr))   # 最小值的索引
print(np.argmax(arr))   # 最大值的索引
print(np.cumsum(arr))  # 累计和
print(np.cumprod(arr))  # 累计积

在这里插入图片描述


http://www.ppmy.cn/news/65778.html

相关文章

React--》React组件变化每次都会导致重新渲染,如何解决?

目录 React.memo useCallback useMemo React.memo React组件会在两种情况下下发生渲染 第一种:当组件自身的state发生变化时 第二种:当组件的父组件重新渲染时 第一种情况下重新渲染无可厚非,state都变化了组件自然应该重新进行渲染&…

Centos 7 配置和使用 MySql 8.0 以及API

1 检查环境 [rootcentos7 opt]# rpm -qa | grep mariadb 有则卸载 mariadb :(显示什么卸载什么) [rootcentos7 opt]# rpm -e --nodeps mariadb-libs [rootcentos7 opt]# rpm -e --nodeps mariadb-devel-5.5.65-1.el7.x86_642 安装依赖 [ro…

自动修改文章的软件-文章原创软件

免费版自动修改文章的软件 免费版自动修改文章的软件是一种又快速、易用且免费的文章修改软件,可以帮助用户批量修改文章和图文,并为用户提供高质量的修改服务。用户仅需上传待修改的文章文件,软件就能自动检测出文章中的语法、拼写错误和表…

OpenCV教程——图像模糊。均值模糊,高斯模糊,中值模糊,双边模糊,高斯分布

1.图像模糊 图像模糊是图像处理中最简单和常用的操作之一。 ⚠️使用该操作的原因之一是为了给图像预处理时降低噪声。 图像模糊操作背后是数学的卷积计算。 卷积操作的原理: 常用的图像模糊的方法: 均值模糊高斯模糊中值模糊双边模糊 这四种模糊方式…

prometheus实战之四:alertmanager的部署和配置

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是《prometheus实战》系列的第四篇,在《prometheus实战之三:告警规则》中曾经提到过,整个告警功能分为规则和…

七、Zookeeper注册中心

目录 1、下载Zookeeper的服务jar包 2、下载好jar包后解压放到合适的目录(目录最好不要有中文及空格) 3、进入解压后的conf目录,复制zoo_sample.cfg文件并重命名为zoo.cfg,修改zoo.cfg文件内容如下 4、运行bin目录下的zkServer…

PowerShell

2023年5月12日,周五晚上: 今天突然对看到了一篇关于Linux的Shell的文章,引起了我的兴趣,但由于我的电脑没有虚拟机,所以我决定研究研究一下windows的PowerShell,感觉还挺好玩的。 打开了一个新世界。 不…

Vmware ESXi 5.0 安装与部署

在虚拟化领域VMware、Citrix、Microsoft都有不错的解决方案而在服务器虚拟化领域VMware又占据着领导者地位游侠www.2cto.com今天也装了个平台与大家一起分享。   VMware的虚拟化产品就个人、小企业而言有Workstation、ESXivSphere免费版、VMwareServer免费版可以选择由于Work…