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

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

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

 1# 元素累积和
2>>> arr.cumsum()
3array([ 1,  6,  9131521], dtype=int32)
4>>> arr.cumsum(axis=0)
5array([[153],
6       [579]], dtype=int32)
7
8# 元素累积积
9>>> arr.cumprod()
10array([  1,   5,  15,  60120720], dtype=int32)
11>>> arr.cumprod(axis=1)
12array([[ 1,  515],
13       [ 4,  848]], dtype=int32)


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

RELATED ARTICLES

欢迎留下您的宝贵建议

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Recent Comments