今天学习了NumPy统计函数

16,NumPy统计函数
numpy_test8.py :
import numpy as np

'''
16,NumPy统计函数 NumPy 提供了许多统计功能的函数,比如查找数组元素的最值、百分位数、方差以及标准差等。
'''
'''
1) numpy.amin() 和 numpy.amax()
这两个函数用于计算数组沿指定轴的最小值与最大值:
amin() 沿指定的轴,查找数组中元素的最小值,并以数组形式返回;
amax() 沿指定的轴,查找数组中元素的最大值,并以数组形式返回。 对于二维数组来说,axis=1 表示沿着水平方向,axis=0 表示沿着垂直方向。
'''
print("----16,NumPy统计函数----")
print("----1) numpy.amin() 和 numpy.amax()----")
arr1 = np.array([[3, 7, 5], [8, 4, 3], [2, 4, 9]])
print('arr1 : ', arr1)
# numpy.amin() 最小值
print('np.amin(arr1) : ', np.amin(arr1))
# numpy.amin() 最小值,axis=1 表示沿着水平方向
print('np.amin(arr1, 1) : ', np.amin(arr1, 1))
# numpy.amax() 最大值
print('np.amax(arr1) : ', np.amax(arr1))
# numpy.amax() 最大值, axis=0 表示沿着垂直方向
print('np.amax(arr1 ,axis=0) : ', np.amax(arr1, axis=0))
'''
arr1 : [[3 7 5]
[8 4 3]
[2 4 9]]
np.amin(arr1) : 2
np.amin(arr1, 1) : [3 3 2]
np.amax(arr1) : 9
np.amax(arr1 ,axis=0) : [8 7 9]
''' '''
2) numpy.ptp()
numpy.ptp() 用于计算数组元素中最值之差值,也就是(最大值 - 最小值)。
对于二维数组来说,axis=1 表示沿着水平方向,axis=0 表示沿着垂直方向。
'''
print("----2) numpy.ptp()----")
print('arr1 : ', arr1)
print("沿着axis 1,最值之差值:",np.ptp(arr1, 1))
print("沿着axis 0,最值之差值:",np.ptp(arr1, 0))
'''
arr1 : [[3 7 5]
[8 4 3]
[2 4 9]]
沿着axis 1,最值之差值: [4 5 7]
沿着axis 0,最值之差值: [6 3 6]
''' '''
3) numpy.percentile()
百分位数,是统计学中使用的一种度量单位。该函数表示沿指定轴,计算数组中任意百分比分位数,语法格式如下:
numpy.percentile(a, q, axis) 函数 numpy.percentile() 的参数说明:
a:输入数组;
q:要计算的百分位数,在 0~100 之间;
介于0-100的float,用来计算是几分位的参数,如四分之一位就是25,如要算两个位置的数就(25,75)
axis:沿着指定的轴计算百分位数。
对于二维数组来说,axis=1 表示沿着水平方向,axis=0 表示沿着垂直方向。
'''
print("----3) numpy.percentile()----")
print('arr1 : ', arr1)
print("沿着axis=0计算百分位数", np.percentile(arr1, 10, 0))
print("沿着axis=1计算百分位数", np.percentile(arr1, 10, 1))
'''
arr1 : [[3 7 5]
[8 4 3]
[2 4 9]]
沿着axis=0计算百分位数 [2.2 4. 3.4]
沿着axis=1计算百分位数 [3.4 3.2 2.4]
''' '''
4) numpy.median()
numpy.median() 用于计算 a 数组元素的中位数(中值):
对于二维数组来说,axis=1 表示沿着水平方向,axis=0 表示沿着垂直方向。
'''
print("----4) numpy.median()----")
print('arr1 : ', arr1)
# np.median() 数组元素的中位数
print("np.median(arr1): ", np.median(arr1))
# np.median() 数组元素的中位数 ,axis 0: 垂直方向
print("np.median(arr1, axis=0): ", np.median(arr1, axis=0))
# np.median() 数组元素的中位数 ,axis 1: 水平方向
print("np.median(arr1, axis=1): ", np.median(arr1, axis=1))
'''
arr1 : [[3 7 5]
[8 4 3]
[2 4 9]]
np.median(arr1): 4.0
np.median(arr1, axis=0): [3. 4. 5.]
np.median(arr1, axis=1): [5. 4. 4.]
''' '''
5) numpy.mean()
该函数表示沿指定的轴,计算数组中元素的算术平均值(即元素之总和除以元素数量)。
对于二维数组来说,axis=1 表示沿着水平方向,axis=0 表示沿着垂直方向。
'''
print("----5) numpy.mean()----")
print('arr1 : ', arr1)
print("np.mean(arr1): ", np.mean(arr1))
print ('沿轴 0 水平方向,调用 mean() 函数:')
print("np.mean(arr1, axis=0): ", np.mean(arr1, axis=0))
print ('沿轴 1 垂直方向,调用 mean() 函数:')
print("np.mean(arr1, axis=1): ", np.mean(arr1, axis=1))
'''
arr1 : [[3 7 5]
[8 4 3]
[2 4 9]]
np.mean(arr1): 5.0
沿轴 0 水平方向,调用 mean() 函数:
np.mean(arr1, axis=0): [4.33333333 5. 5.66666667]
沿轴 1 垂直方向,调用 mean() 函数:
np.mean(arr1, axis=1): [5. 5. 5.]
''' '''
6) numpy.average()
加权平均值是将数组中各数值乘以相应的权数,然后再对权重值求总和,最后以权重的总和除以总的单位数(即因子个数)。 numpy.average() 根据在数组中给出的权重,计算数组元素的加权平均值。
该函数可以接受一个轴参数 axis,如果未指定,则数组被展开为一维数组。
对于二维数组来说,axis=1 表示沿着水平方向,axis=0 表示沿着垂直方向。
'''
print("----6) numpy.average()----")
arr2 = np.array([1, 4, 7, 9])
print('arr2 : ', arr2)
# average()函数:
print("np.average(arr2): ", np.average(arr2))
# 若不指定权重相当于对数组求均值
weight = np.array([7, 5, 3, 1])
# 调用 average() 函数:
print("np.average(arr2, weights=weight): ", np.average(arr2, weights=weight))
# returned=Ture,则返回权重的和
print("np.average(arr2, weights=weight, returned=True): ", np.average(arr2, weights=weight, returned=True))
'''
arr2 : [1 4 7 9]
np.average(arr2): 5.25
np.average(arr2, weights=weight): 3.5625
np.average(arr2, weights=weight, returned=True): (3.5625, 16.0)
'''
# 在多维数组中,您也可以指定 axis 轴参数。
print("----在多维数组中,您也可以指定 axis 轴参数。----")
arr3 = np.arange(6).reshape(3, 2)
print('arr3 : ', arr3)
# 指定权重
wt = np.array([3, 5])
print("np.average(arr3, axis=1, weights=wt): ", np.average(arr3, axis=1, weights=wt))
# returned=Ture,则返回权重的和
print("np.average(arr3, axis=1, weights=wt, returned=True): ", np.average(arr3, axis=1, weights=wt, returned=True))
'''
arr3 : [[0 1]
[2 3]
[4 5]]
np.average(arr3, axis=1, weights=wt): [0.625 2.625 4.625]
np.average(arr3, axis=1, weights=wt, returned=True): (array([0.625, 2.625, 4.625]), array([8., 8., 8.]))
''' '''
7) numpy.var() 方差
方差,在统计学中也称样本方差,如何求得方差呢?首先我们要知道全体样本的的平均值,
然后再求得每个样本值与均值之差的平方和,最后对差的平方和求均值,公式如下(其中 n 代表元素个数):
'''
print("----7) numpy.var() 方差----")
print('np.var([1, 2, 3, 4]) : ', np.var([1, 2, 3, 4]))
'''
np.var([1, 2, 3, 4]) : 1.25
''' '''
8) numpy.std() 标准差
标准差是方差的算术平方根,用来描述一组数据平均值的分散程度。若一组数据的标准差较大,
说明大部分的数值和其平均值之间差异较大;若标准差较小,则代表这组数值比较接近平均值。它的公式如下:
std = sqrt(mean((x - x.mean())**2
'''
print("----8) numpy.std() 标准差----")
print('np.std([1, 2, 3, 4]) : ', np.std([1, 2, 3, 4]))
'''
np.std([1, 2, 3, 4]) : 1.118033988749895
'''

  



NumPy学习8的更多相关文章

  1. NumPy学习笔记 三 股票价格

    NumPy学习笔记 三 股票价格 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.&l ...

  2. NumPy学习笔记 二

    NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...

  3. NumPy学习笔记 一

    NumPy学习笔记 一 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...

  4. 数据分析之Pandas和Numpy学习笔记(持续更新)<1>

    pandas and numpy notebook        最近工作交接,整理电脑资料时看到了之前的基于Jupyter学习数据分析相关模块学习笔记.想着拿出来分享一下,可是Jupyter导出来h ...

  5. NumPy学习(索引和切片,合并,分割,copy与deep copy)

    NumPy学习(索引和切片,合并,分割,copy与deep copy) 目录 索引和切片 合并 分割 copy与deep copy 索引和切片 通过索引和切片可以访问以及修改数组元素的值 一维数组 程 ...

  6. NumPy学习(让数据处理变简单)

    NumPy学习(一) NumPy数组创建 NumPy数组属性 NumPy数学算术与算数运算 NumPy数组创建 NumPy 中定义的最重要的对象是称为 ndarray 的 N 维数组类型. 它描述相同 ...

  7. numpy 学习笔记

    numpy 学习笔记 导入 numpy 包 import numpy as np 声明 ndarray 的几种方法 方法一,从list中创建 l = [[1,2,3], [4,5,6], [7,8,9 ...

  8. numpy 学习总结

    numpy 学习总结 作者:csj更新时间:01.09 email:59888745@qq.com 说明:因内容较多,会不断更新 xxx学习总结: 回主目录:2017 年学习记录和总结 #生成数组/使 ...

  9. (转)Python数据分析之numpy学习

    原文:https://www.cnblogs.com/nxld/p/6058572.html https://morvanzhou.github.io/tutorials/data-manipulat ...

  10. Numpy学习1

    NumPy学习(1) 参考资料: http://www.cnblogs.com/zhanghaohong/p/4854858.html http://linusp.github.io/2016/02/ ...

随机推荐

  1. Qt编写地图综合应用60-覆盖物坐标和搜索

    一.前言 地图应用中有时候需要开启悬浮工具栏,用户可以直接在地图上绘制矩形.多边形.圆形.线条等,于是需要提供一个函数接口,能够获取到用户绘制的这些图形形状对应的信息.比如坐标点.圆形的中心点和半径. ...

  2. Qt编写地图综合应用46-设备点位(添加、删除、清空、重置)

    一.前言 在学习JS语法的时候发现其实程序都大同小异,正所谓一通百通,熟悉各大概的语法以后基本都可以上手,和C++最大的不同就是他没有数据类型的概念,作为解释性的语言,是在执行的时候自动去转换数据类型 ...

  3. 关于Qt几百个版本无法兼容的深度思考

    关于Qt众多版本(至少几百个)都不兼容的问题,在经过和Qt中国的林斌大神和其他大神(Qt非官方技术交流群)头脑风暴以后,最终得出以下的结论. Qt在二进制兼容这块,已经做了最大的努力,通过将各种代码细 ...

  4. 在Eclipse配置并编译worldwind java2.1.0源码,选中Src目录下gov.nasa.worldwindx.examples包下ApplicationTemplate.java类文件run时提示“javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V”异常的解决办法

    问题现象: 在Eclipse配置并编译worldwind java2.1.0源码,选中Src目录下gov.nasa.worldwindx.examples包下ApplicationTemplate.j ...

  5. 即时通讯技术文集(第44期):微信、QQ技术精华合集(Part1) [共14篇]

    为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第44 期. [-1-]  微信朋友圈千亿访问量背后的技术挑战和实践总结 [链接] http:/ ...

  6. Python绘制土地利用和土地覆盖类型图详解

    土地利用和土地覆盖是环境科学和城市规划中的重要概念,它们能够帮助本文理解人与自然的关系,促进可持续发展.随着城市化进程的加快,科学地监测和管理土地资源显得尤为重要.Python作为一种强大的编程语言, ...

  7. Awesome-Text2GQL:图查询微调语料的自动生成框架

      过去一年,GraphRAG技术发展如火如荼,尤其是基于关键词.向量驱动的知识检索方法不胜枚举.然而通过子图召回的检索方式,对用户真实查询意图的定位仍缺乏足够的准确度.我们需要更直接的方式,将自然语 ...

  8. CF div2 996(A~D)

    手速场,前三题偏简单,后三题偏难.赛时三题,C题做法麻烦了些导致过得不是很快,但最后打得也不是很差. A 两只青蛙相邻时,可移动的青蛙一定输:直接把该青蛙挤到边缘即可. 而是否相邻可以直接用二者初始间 ...

  9. cpa-审计

    1.审计概述 2.审计计划 3.审计证据 4.审计抽样方法 5.信息技术对审计的影响 6.审计工作底稿 7.风险评估 8.风险应对 9.销售与收款循环的审计 10.采购与付款循环的审计 11.生产与存 ...

  10. 关于 static 和 final 的一些理解

    今天主要回顾一下 static 和 final 这两个关键字. 1. static  -  静态 修饰符 - 用于修饰数据(变量.对象).方法.代码块以及内部类.         1.1 静态变量 用 ...