python-数据分析-Numpy-2

news/2024/10/9 2:29:19

数组对象的方法应用

# -*- coding: utf-8 -*-
#数组对象的方法
import matplotlib.pyplot as plt
import numpy# 1、 获取描述统计信息
array1 = numpy.random.randint(1, 100, 10)
print(array1)   #随机数组   [64 84 10 52  3 66  4 31 79  7]#计算总和、平均值、中位数
print(array1.sum())         #400
print(numpy.sum(array1))    #400
print(array1.mean())        #40.0
print(numpy.mean(array1))   #40.0   平均值
print(numpy.median(array1)) #41.5   中位数
print(numpy.quantile(array1, 0.5))  #41.5   分位数
#上面代码中的mean、median和quantile分别是 NumPy 中计算算术平均值、中位数和分位数的函数,其中quantitle函数的第二个参数设置为0.5表示计算50%分位数,也就是中位数。print("-----------------------------------------")#极值、全距和四分位距离
print(array1.max())
print(numpy.amax(array1))
print(array1.min())
print(numpy.amin(array1))
print(array1.ptp())             #ptp 函数计算数组中的最大值和最小值之差
print(numpy.ptp(array1))
q1, q3 = numpy.quantile(array1, [0.25, 0.75])   #计算四分位距离、75%分位数减去25%分位数
print(q3 - q1)print("-----------------------------------------")#方差、标准差、变异系数
print(array1.var())
print(numpy.var(array1))    #方差
print(array1.std())
print(numpy.std(array1))    #标准差
print(array1.std() / array1.mean()) #变异系数、标准差除以平均值

绘制箱线图

# 2、绘制箱线图
#箱线图又称为盒须图,是显示一组数据分散情况的统计图,因形状如箱子而得名。 它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较。plt.boxplot(array1, showmeans=True) #绘制箱线图
plt.ylim([-20, 120])    #设置y轴范围
plt.show()  #显示图形

值得注意的是,对于二维或更高维的数组,在获取描述统计信息时,可以通过名为axis的参数指定均值、方差等运算是沿着哪一个轴来执行,axis参数不同,执行的结果可能是大相径庭的,如下所示。

array2 = numpy.random.randint(60, 101, (5, 3))  #随机数组、5行3列
print(array2)print(array2.mean())    #均值
print(array2.mean(axis=0))  #列平均值(每一列的平均值)  axis = 0:表示列
print(array2.mean(axis=1))  #行平均值(每一行的平均值)  axis = 1:表示行
print(array2.max(axis=0))
print(array2.max(axis=1))#再看看绘制箱线图,对于二维数组每一列都会产生一个统计图形,如下所示。
plt.boxplot(array2, showmeans=True)
plt.ylim([-20, 120])
plt.show()

说明:箱线图中的小圆圈用来表示离群点,也就是大于$\small{Q_3 + 1.5 \times IQR}$或小于$\small{Q_1 - 1.5 \times IQR}$的值。公式中的常量1.5可以通过绘制箱线图的boxplot函数的whis参数进行修改,常用的值是1.5和3,修改为3通常是为了标识出极度离群点。

 

需要说明的是,NumPy 的数组对象并没有提供计算几何平均值、调和平均值、去尾平均值等的方法,如果有这方面的需求,可以使用名为 scipy 的三方库,它的stats模块中提供了这些函数。此外,该模块还提供了计算众数、变异系数、偏态、峰度的函数,代码如下所示。

from scipy import statsprint(numpy.mean(array1))                # 算术平均值
print(stats.gmean(array1))            # 几何平均值
print(stats.hmean(array1))            # 调和平均值
print(stats.tmean(array1, [10, 90]))  # 去尾平均值
print(stats.variation(array1))        # 变异系数
print(stats.skew(array1))             # 偏态系数
print(stats.kurtosis(array1))         # 峰度系数

其它相关方法概述

all() / any()方法:判断数组是否所有元素都是True / 判断数组是否有为True的元素。
astype()方法:拷贝数组,并将数组中的元素转换为指定的类型。
reshape()方法:调整数组对象的形状。
#dump()方法:保存数组到二进制文件中,可以通过 NumPy 中的load()函数从保存的文件中加载数据创建数组。array1.dump('array1-data')
# print(array1.dump('array1-data'))
array3 = numpy.load('array1-data', allow_pickle=True)
print(array3)print("-----------------------------------------")##tofile()方法:将数组对象写入文件中。
print(array1.tofile('res/array.txt', sep=','))#fill()方法:向数组中填充指定的元素。#flatten()方法:将多维数组扁平化为一维数组。
print(array2.flatten())#nonzero()方法:返回非0元素的索引。#round()方法:对数组中的元素做四舍五入操作。#sort()方法:对数组进行就地排序。
print(array1)
print(numpy.sort(array1))#swapaxes()和transpose()方法:交换数组指定的轴和转置。
print(array2.swapaxes(0, 1))    #交换数组的维度、0和1表示行和列
print(array2.transpose())#tolist()方法:将数组转成 Python 中的list。
print(array2.tolist())
print(type(array2.tolist()))

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hjln.cn/news/42469.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

数据结构之跳表

原始论文: https://15721.courses.cs.cmu.edu/spring2018/papers/08-oltpindexes1/pugh-skiplists-cacm1990.pdf 基本原理 跳表的查找与插入:代码实现 未完成,待续。。。。

PTA训练集阶段总结blog

这次是4-6次的pta作业的一个总结性blog目录PTA训练集总结blog1.前言2.设计与分析题目集一 7.4 答题判题程序四关于设计要求:UML类图及设计分析:部分源码:复杂度分析:题目集五 7.1 家具强电电路模拟系统—1关于设计要求:UML类图及设计分析:部分源码:复杂度分析:题目集六…

Redis-6-三种缓存读写策略

2.1 旁路缓存Cache Aside Pattern(旁路缓存)适合读请求比较多的场景Cache Aside Pattern 中服务端需要同时维系 db 和 cache,并且是以 db 的结果为准。 2.1.1 写先更新db 直接删除缓存2.1.2 读先读缓存有,则从缓存返回。 没有,从db中读取返回。再将读取的数据写入缓存2.1.…

PTA4~6次作业总结

(1)前言: 不同于大一上的c语言的PTA作业,java的PTA作业越来越贴近生活中的需求,难度也越来越大了,代码的设计量和题目考察的知识点也是.最后一次作业没有给测试样例,导致有几个点没过,不知道错哪了,测不出来,非常的难受. 这次作业使用了ArryList 先了解下ArryList ArrayList…

构建和谐网络环境:AI敏感词屏蔽技术的应用与挑战

在当今信息爆炸的时代,网络空间的信息安全和言论自由之间的平衡成为了一个重要议题。为了维护网络环境的健康发展,一种能够自动屏蔽敏感词的AI技术应运而生。本文将结合“智谱清言”的智能体“净言”为例,探讨AI敏感词屏蔽技术的应用及其面临的挑战。 一、AI敏感词屏蔽技术的…

Ubuntu基础环境配置

博主:Agony‍ 下载ubuntu地址:https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/选择你所需要的版本下载即可‍ root设置ubuntu系统搭建好之后‍打开终端。输入以下命令来切换到root用户(如果您当前用户有sudo权限): sudo su或者,如果您已经有了root用户并知道密码…

南昌航空大学pta总结

前言 背景介绍: 继上次PTA题目讲解完,本次博客会进行对后几次题目集的讲解说明和题后总结 目的和目标: 及时反馈学习成果,达到学由所会,及时吸收和深入学习的目的 学习收益: 通过后面几次的题目学习,使得我对java的语法代码以及运用熟练度有了极大的进步,同时也对学习代码…

两次pta题目总结

两次pta题目总结 写在前面 这两次pta是新题目,上次那个答题判题的没有继续迭代了,根据这两次题目我也学到了一些东西,主要是面向对象设计模式的运用,接口的使用,以及递归算法的使用等等 第一题题目内容: 智能家居是在当下家庭中越来越流行的一种配置方案,它通过物联网技…