首页Python【Python数据分析】9...

【Python数据分析】9.数组的数学和统计方法


本系列文章配套代码获取有以下三种途径:

  • 可以在以下网站查看,该网站是使用JupyterLite搭建的web端Jupyter环境,因此无需在本地安装运行环境即可使用,首次运行浏览器需要下载一些配置文件(大约20M):

https://returu.github.io/Python_Data_Analysis/lab/index.html
链接:https://pan.baidu.com/s/1MYkeYeVAIRqbxezQECHwcA?pwd=mnsj 提取码:mnsj
  • 前往GitHub详情页面,单击 code 按钮,选择Download ZIP选项:
https://github.com/returu/Python_Data_Analysis

根据《Python for Data Analysis 3rd Edition》翻译整理

-----------------------------------------------------

Numpy中基础数组统计方法主要有以下几种:

函数方法
说明
sum 沿着轴向计算所有元素的累加和
mean 计算数学平均
std, var 计算标准差、方差
min, max 计算最小值、最大值
argmin, argmax 计算最小值、最大值的位置
cumsum 计算从0开始的元素累积和
cumprod 计算从1开始的元素累积积

上述这些统计方法,既可以直接调用数组实例的方法,也可以使用顶层的Numpy函数。

 1>>> arr = np.array([[1, 5, 3],[4, 2, 6]])
2>>> arr
3array([[1, 5, 3],
4       [4, 2, 6]])
5
6# 调用数组实例的方法
7>>> arr.sum()
821
9>>> arr.mean()
103.5
11# 使用顶层的Numpy函数
12>>> np.sum(arr)
1321
14>>> np.mean(arr)
153.5
统计函数可以接受一个可选的参数axis,用于计算指定轴上的统计值,形成一个下降一维的数组。

TIPS:

对于二维数组来说: 

axis=0——对a的横轴(行)进行操作,在运算的过程中其运算的方向表现为纵向(列)运算; 

axis=1——对a的纵轴(列)进行操作,在运算的过程中其运算的方向表现为横向(行)运算。


 1# axis=0——对a的横轴(行)进行操作,在运算的过程中其运算的方向表现为纵向(列)运算
2>>> arr.sum(axis=0)
3array([5, 7, 9])
4
5# axis=1——对a的纵轴(列)进行操作,在运算的过程中其运算的方向表现为横向(行)运算
6>>> arr.sum(axis=1)
7array([ 9, 12])
8
9# 计算标准差
10>>> arr.std(axis=0)
11array([1.5, 1.5, 1.5])
12
13# 计算方差
14>>> arr.var(axis=1)
15array([2.66666667, 2.66666667])
16
17# 计算最小值
18>>> arr.min(axis=0)
19array([1, 2, 3])
20
21# 计算最大值
22>>> arr.max(axis=1)
23array([5, 6])
24
25# 计算最小值的位置
26>>> arr.argmin(axis=0)
27array([0, 1, 0], dtype=int64)
28
29# 计算最大值的位置
30>>> arr.argmax(axis=1)
31array([1, 2], dtype=int64)

有些方法,例如cumsum和cumprod方法并不会对数据进行聚合,而是产生一个中间结果。

在多维数组中,cumsum和cumprod方法会返回相同长度的数组,但是也可以在指定轴上根据较低维度的切片进行部分聚合。

 1# 元素累积和
2>>> arr.cumsum()
3array([ 1,  6,  9, 13, 15, 21], dtype=int32)
4>>> arr.cumsum(axis=0)
5array([[1, 5, 3],
6       [5, 7, 9]], dtype=int32)
7
8# 元素累积积
9>>> arr.cumprod()
10array([  1,   5,  15,  60, 120, 720], dtype=int32)
11>>> arr.cumprod(axis=1)
12array([[ 1,  5, 15],
13       [ 4,  8, 48]], dtype=int32)


本篇文章来源于微信公众号: 码农设计师

RELATED ARTICLES

欢迎留下您的宝贵建议

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Recent Comments