Numpy 统计变量(平均值、标准差、方差、最大、最小、和、乘积、对角线和)
1. reshape
reshape
后的数组,仅仅是原来数组的视图 view
,并没有发生复制元素的行为,这样才能保证 reshape
操作更为高效。
In [1]: import numpy as npIn [2]: a = np.arange(10)In [3]: a
Out[3]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])In [4]: b = a.reshape(2,5)In [5]: b
Out[5]:
array([[0, 1, 2, 3, 4],[5, 6, 7, 8, 9]])In [6]: a[0] = 10In [7]: a
Out[7]: array([10, 1, 2, 3, 4, 5, 6, 7, 8, 9])In [8]: b
Out[8]:
array([[10, 1, 2, 3, 4],[ 5, 6, 7, 8, 9]])In [9]:
可以看出,在经过 reshape
操作之后,改变 a
中的第一个元素, b
也会跟着改变。
2. 元素级操作
NumPy
中两个数组加减乘除等,默认都是对应元素的操作:
In [9]: a = np.arange(5)In [10]: a
Out[10]: array([0, 1, 2, 3, 4])In [11]: a+2
Out[11]: array([2, 3, 4, 5, 6])In [12]:
执行 a+2
之后 a
中的每个元素都被加 2。
In [12]: a
Out[12]: array([0, 1, 2, 3, 4])In [13]: a * a
Out[13]: array([ 0, 1, 4, 9, 16])In [14]:
执行 a * a
时,注意是按照元素逐个相乘。
3. 矩阵运算
线性代数中,矩阵的乘法操作在 NumPy
中实现有两种方法:
- 使用
dot
函数; - 转化为
matrix
对象。
使用 dot
函数
In [14]: a
Out[14]: array([0, 1, 2, 3, 4])In [15]: b = np.random.randint(1, 10, (5,2))In [16]: b
Out[16]:
array([[7, 5],[8, 9],[2, 4],[5, 9],[3, 2]])In [17]: np.dot(a, b)
Out[17]: array([39, 52])In [18]:
另一种方法,将 a 和 b 分别转化为 matrix
对象:
In [18]: np.matrix(a) * np.matrix(b)
Out[18]: matrix([[39, 52]])In [19]:
因为 a 是一个 15 维的数组,而 b 是一个 52 维的数组,所以得出的结果是个 1*2 的数组。
4. 统计变量
4.1 求平均值
In [22]: m = np.arange(5)In [23]: m
Out[23]: array([0, 1, 2, 3, 4])In [24]: m.mean()
Out[24]: 2.0In [25]: m.sum()
Out[25]: 10In [26]:
若想求某一维度的平均值,设置 axis
参数,求 axis
等于 1 的平均值:
In [28]: m =np.random.randint(1, 10,(2,5))In [29]: m
Out[29]:
array([[4, 6, 8, 9, 8],[6, 9, 6, 6, 9]])In [30]: m.mean(axis=1)
Out[30]: array([7. , 7.2])In [31]: (4+6+8+9+8)/5.0
Out[31]: 7.0In [32]: (6+9+6+6+9)/5.0
Out[32]: 7.2In [33]:
4.2 求标准差
如下,分别求所有元素的标准差、某一维度上的标准差:
In [35]: m.std()
Out[35]: 1.6401219466856725In [36]: m.std(axis=1)
Out[36]: array([1.78885438, 1.46969385])In [37]:
4.3 求方差
如下,分别求所有元素的方差、某一维度上的方差:
In [38]: m.var()
Out[38]: 2.69In [39]: m.var(axis=1)
Out[39]: array([3.2 , 2.16])In [40]:
4.4 求最大值
如下,分别求所有元素的最大值、某一维度上的最大值:
In [40]: m.max()
Out[40]: 9In [41]: m.max(axis=1)
Out[41]: array([9, 9])In [42]:
4.5 求最小值
如下,分别求所有元素的最小值、某一维度上的最小值:
In [42]: m.min()
Out[42]: 4In [43]: m.min(axis=1)
Out[43]: array([4, 6])In [44]:
4.6 求和
如下,分别求所有维度上元素的和、某一维度上的元素和:
In [44]: m.sum()
Out[44]: 71In [45]: m.sum(axis=1)
Out[45]: array([35, 36])In [46]:
4.7 求累乘
如下,分别求所有维度上元素的累乘、某一维度上的累乘:
In [46]: m
Out[46]:
array([[4, 6, 8, 9, 8],[6, 9, 6, 6, 9]])In [47]: m.cumprod()
Out[47]:
array([ 4, 24, 192, 1728, 13824, 82944,746496, 4478976, 26873856, 241864704], dtype=int32)In [48]: m.cumprod(axis=1)
Out[48]:
array([[ 4, 24, 192, 1728, 13824],[ 6, 54, 324, 1944, 17496]], dtype=int32)In [49]:
4.8 求累和
如下,分别求所有维度上元素的累加和、某一维度上的累加和:
In [49]: m
Out[49]:
array([[4, 6, 8, 9, 8],[6, 9, 6, 6, 9]])In [50]: m.cumsum()
Out[50]: array([ 4, 10, 18, 27, 35, 41, 50, 56, 62, 71], dtype=int32)In [51]: m.cumsum(axis=1)
Out[51]:
array([[ 4, 10, 18, 27, 35],[ 6, 15, 21, 27, 36]], dtype=int32)In [52]:
4.9 对角线上元素的和
In [54]: m = np.random.randint(1,10,(4,4))In [55]: m
Out[55]:
array([[6, 6, 4, 6],[8, 4, 9, 3],[8, 4, 3, 1],[2, 6, 6, 7]])In [56]: m.trace()
Out[56]: 20In [57]:
Numpy 统计变量(平均值、标准差、方差、最大、最小、和、乘积、对角线和)相关推荐
- 使用numpy和pandas计算平均值、方差、标准差
使用numpy和pandas计算平均值.方差.标准差 numpy和pandas都可以实现计算平均值.方差.标准差.但numpy默认的是总体方差,pandas默认的样本方差,即分母是n-1,是总体的无偏 ...
- 【backtrader源码解析7】backtrader中mathsupport中计算平均值、方差和标准差的函数的分析(含金量挺低的)
前面的几篇文章尝试通过优化backtrader几个时间处理函数来提高效率,使用cython能提高单个函数效率但是在整体中效率降低导致失败之后,我又尝试了使用numba来改进那几个时间处理函数,也失败了 ...
- 统计学习方法——均值、方差、标准差及协方差、协方差矩阵、相关系数
一.几个基本概念:均值.方差.标准差 统计学里最基本的概念就是样本的均值.方差.标准差.首先,我们给定一个含有n个样本的集合,下面给出这些概念的公式描述: 均值:,(在概率论和统计学中,数学期望(me ...
- Java黑皮书课后题第7章:*7.11(统计:计算标准差)编程练习题5.45计算数字的标准差。本题…计算标准差,使用一个数组存储x的每个数。编写测试程序,提示用户输入10个数字,显示平均值和标准差
7.11(统计:计算标准差)编程练习题5.45计算数字的标准差.本题-计算标准差,使用一个数组存储x的每个数.编写测试程序,提示用户输入10个数字,显示平均值和标准差 题目 题目描述与运行示例 破题 ...
- 计算数据的平均值、方差和标准差
//计算数据的平均值.方差和标准差 #include <iostream> #include <math.h> using namespace std; class MeanV ...
- NumPy 统计方法
https://docs.scipy.org/doc/numpy/reference/routines.statistics.html 排序统计 方法 描述 amin(a[, axis, out, k ...
- 白话Elasticsearch35-深入聚合数据分析之案例实战更多metrics用法:统计每种颜色电视最大最小价格
文章目录 概述 官方指导 Metrics Aggregations Min Aggregation Max Aggregation Sum Aggregation 案例:统计每种颜色电视最大最小价格 ...
- r语言三倍标准差法去除异常值,再计算平均值标准差
博主自己没能找到好的函数去除异常值,于是自己写好了一个简单实用的包.可以通过三倍标准差法删去每一行的异常值,然后计算出平均值标准差. 函数总共四个参数: file= 要计算的文件路径,在工作目录可以 ...
- 平均值和方差的递推公式以及python实现
有时候在处理流式数据的时候,需要实时更新数据的统计值,如平均值和方差,如果通过传统求解方差或者平均值时,每到达一个新的数据就需要遍历来求解.在数据量比较少的时候,通过遍历和递推求解的时间消耗和空间消耗 ...
最新文章
- 2021年春季学期-信号与系统-第二次作业参考答案-第二小题
- 基于单片机的水壶自动加热系统_基于烟雾检测火灾自动报警系统
- python 对象_python面向对象
- 神奇的问题记录【SqlDataAdapter Fill DataSet】
- python全文检索引擎_Python中使用haystack实现django全文检索搜索引擎功能
- C#合成解析XML与JSON
- 模数转换实验中断方式c语言,DSP实验报告--模拟信号的AD+FFT变换
- ElasticSearch5.1 基本概念和配置
- 挖地雷_1996年分区联赛提高组之三_ssl1071_dfs
- Franka Emika机械臂快速入门教程
- html网页中加入音乐播放器,[HTML5]简单网页本地音乐播放器
- java更改图片小于32kb_echarts上传图表图片到Java 后台保存出来是空白图片?
- 程序员网站有哪些?(欢迎补充)
- 超过ChatGPT3达到ChatGPT4%90性能的小羊驼来了-Vicuna(校招社招必备,chatgpt风口来了赶紧学起来吧)
- Daily English(每日一句)
- 安卓手机root、修改文件权限、更改按键映射
- IPFS周报-95:你是如何探索IPFS生态的?官方正在调查
- Oracle Reports 6i培训教程 - 百度文库
- 微距昆虫摄影的常用技巧
- %公式在计算机中怎么使用,在Excel 2013公式中使用函数并移动和复制——想象力电脑应用...