首页 > 其他分享 >NumPy学习8

NumPy学习8

时间:2023-06-11 20:47:12浏览次数:40  
标签:---- numpy 学习 print arr1 np NumPy axis

今天学习了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,学习,print,arr1,np,NumPy,axis
From: https://www.cnblogs.com/xh2023/p/17473530.html

相关文章

  • Windows驱动开发学习记录-ObjectType Hook之ObjectType结构相关分析
    1、目的  在一般情况下,对于系统的常规操作如创建进程、创建互斥体、创建文件等可以进行SSDTHook进行拦截,但在x64位系统下,有PG的保护,常规的SSDTHook会导致蓝屏。但基于ObjectType的一些Hook也可以做到相应的功能且不会导致系统BSOD。 2、相关结构分析2.1XP上的相关结构......
  • 基于半监督学习的单体型组装算法
    基于半监督学习的单体型组装算法李明阳湖南师范大学摘要:单体型组装(HaplotypeAssembly)是根据测序得到的DNA片段通过各种模型算法来重建出生物个体的单体型。随着人类基因组计划(HumanGenomeProject,HGP)的逐渐完成,人们已经认识到个体之间基因序列的差异是造成个体之间......
  • Arduino学习—— 蜂鸣器
     voidsetup(){//putyoursetupcodehere,torunonce:Serial.begin(9600);pinMode(2,OUTPUT);pinMode(7,OUTPUT);analogWrite(9,255);}voidloop(){//putyourmaincodehere,torunrepeatedly://Serial.println(digitalRead(4));if(......
  • 【Kubernetes学习笔记】-kubeadm 手动搭建kubernetes 集群
    目录K8S组件构成环境准备(以ubuntu系统为例)1.kubernetes集群机器2.安装docker、kubeadm、kubelet、kubectl2.1在每台机器上安装docker2.2每台机器上安装kubelet、kubeadm、kubectl创建kubernetes集群kubeadm在master节点init集群在worker节点执行命令......
  • Centos 7 学习之静态IP设置
    本学习主要针对Centos7.0.1406版本进行学习整理! 1、编辑ifcfg-eth0文件,vim最小化安装时没有被安装,需要自行安装不描述。1.#vim/etc/sysconfig/network-scripts/ifcfg-eth02、修改如下内容1.BOOTPROTO="static"#dhcp改为static2.ONBOOT="yes"#开机启用......
  • 2.5再探宝可梦、数码宝贝分类器 — 浅谈机器学习原理
    1.引入问题  在之前的课程中,我们对"参数过多就会导致过拟合"这个概念处于提出但没有证明的状态,现在来以宝可梦和数码宝贝的分类例子来说明这个问题.2.分类器定义  我们观察宝可梦和数码宝贝的图片可以发现,宝可梦的图片线条比较少,而数码宝贝的线条比较多.或许可以以边......
  • ftrace学习 —— user_events的用法
    参考https://docs.kernel.org/trace/user_events.html测试程序samples/user_events/example.ctools/testing/selftests/user_events/ftrace_test.c正文通过user_event可以实现对应用程序的跟踪,类似linux内核中的tracepoint那样。相似的方法还有借助/sys/kernel/debug/tracin......
  • java多线程基础的学习
    java多线程学习(主要围绕着线程的实现、状态、同步、通信以及高级主题如线程池)1.线程、进程、多线程进程:正在进行中的程序,一个程序的执行过程,需要资源:内存、cpu。线程:属于进程,指的是一个可以独立运行的代码片段(执行单元、执行路径)。一个进程中有多个可以独立运行的执行单元,这......
  • Redis学习笔记4-脚本、持久化和集群 Redis学习笔记1-基础命令及数据结构: http://blog.
        Redis学习笔记4-脚本、持久化和集群Redis学习笔记1-基础命令及数据结构:http://blog.guoyb.com/2016/07/21/learn-redis-basic-commands/Redis学习笔记2-事务与过期时间:http://blog.guoyb.com/2016/08/23/learn-redis-adv/Redis学习笔记3-排序与消息通知:http://blog......
  • 本学期学习情况总结
    1、回顾我的本学期目标,现在看来已经完成了最初设下的目标,在web方面,我已经能独立完成一个完整的mis系统并且还能进行一定程度的美化。在app方面,我已经掌握了app制作的基本技能,总体来说还是有很大进步的。2、《构建之法》这本书的内容逻辑很清晰明了,第一章是从整体分析软件工程这......