NumPy学习第十三课:统计函数

90 阅读7分钟

🍩前言导读🍩

学习函数已经有一段时间了,感觉NumPy确实挺强悍的,基本上把所有的运算公式,数据优化都涵盖在里面了,我们只需要学会调用就行,而且NumPy跟我们上学时候学习的基础数学,高等数学都有关联,这一下子也提起了我们学习的兴趣,就是感觉我们在学校学的东西终于能用上了。

嗯!!! 看来在学校学的东西还都是很有用的,上学的时候,打好数学基础我感觉挺重要的,因为它里面既包含了处理问题的方式方法,也同时锻炼了我们的逻辑思维,凡是用数学的逻辑去思考问题,有时候会得到不一样的结果的。

好了,那么这节我们即将进行NumPy学习的---统计函数。

统计函数挺好理解的,就是对数据进行统计或者分析,然后进行一系列的运算得到我们想要的结果。

我们还是分别从函数的概念 -- 函数的传参格式 --实例代码 几个方面进行讲解和学习。

🌾函数分类

函数名称作用
amin()计算数组中的元素沿指定轴的最小值
amax()计算数组中的元素沿指定轴的最大值
ptp()计算数组中元素最大值与最小值的差
percentile()
median()计算数组中元素的中位数
mean()返回数组中元素的算术平均值,如果提供了轴,则沿其计算
average()根据在另一个数组中给出的各自的权重计算数组中元素的加权平均值

🦅函数调用

1、amin()

函数格式:

numpy.amin( a, axis=None, out=None, keepdims=np._NoValue, initial=np._NoValue, where=np._NoValue )

参数说明:

参数名称参数类型(是否必填)注释
a数组
axis轴,指定在哪个轴上计算最小值
out指定结果的存储位置
keepdims如果为True,将保持结果数组的维度数目与输入数组相同。如果为False(默认值),则会去除计算后维度为1的轴
initial用于指定一个初始值,然后在数组的元素上计算最小值
where一个布尔数组,用于指定仅考虑满足条件的元素

实例代码:

import numpy as np

x = np.array([[2, 5, 8], [9, 4, 7], [6, 3, 1]])
print('原数组')
print(x)
print('\n')
# 调用amin()函数,获取最小值,无可选参数
print('无可选参数输出')
print(np.amin(x))
print('\n')
print('可选参数axis=0')
print(np.amin(x, axis=0))
print('\n')
print('可选参数axis=1')
print(np.amin(x, axis=1))
print('\n')

# 输出结果
# 原数组
# [[2 5 8]
#  [9 4 7]
#  [6 3 1]]
# 
# 
# 无可选参数输出
# 1
# 
# 
# 可选参数axis=0
# [2 3 1]
# 
# 
# 可选参数axis=1
# [2 4 1]

2、amax()

函数格式:

numpy.amax( a, axis=None, out=None, keepdims=np._NoValue, initial=np._NoValue, where=np._NoValue )

参数说明:

参数名称参数类型(是否必填)注释
a数组
axis轴,指定在哪个轴上计算最小值
out指定结果的存储位置
keepdims如果为True,将保持结果数组的维度数目与输入数组相同。如果为False(默认值),则会去除计算后维度为1的轴
initial用于指定一个初始值,然后在数组的元素上计算最小值
where一个布尔数组,用于指定仅考虑满足条件的元素

实例代码:

import numpy as np

x = np.array([[2, 5, 8], [9, 4, 7], [6, 3, 1]])
print('原数组')
print(x)
print('\n')

print('无可选参数输出')
print(np.amax(x))
print('\n')
print('可选参数axis=0')
print(np.amax(x, axis=0))
print('\n')
print('可选参数axis=1')
print(np.amax(x, axis=1))
print('\n')

# 输出结果
# 原数组
# [[2 5 8]
#  [9 4 7]
#  [6 3 1]]
#
# 无可选参数输出
# 9
#
#
# 可选参数axis=0
# [9 5 8]
#
#
# 可选参数axis=1
# [8 9 6]

3、ptp()

函数格式:

numpy.amax( a, axis=None, out=None, keepdims=np._NoValue, initial=np._NoValue, where=np._NoValue )

参数说明:

参数名称参数类型(是否必填)注释
a数组
axis轴,指定在哪个轴上计算峰值
out指定结果的存储位置
keepdims如果为True,将保持结果数组的维度数目与输入数组相同。如果为False(默认值),则会去除计算后维度为1的轴
initial用于指定一个初始值,然后在数组的元素上计算最小值
where一个布尔数组,用于指定仅考虑满足条件的元素

实例代码:

import numpy as np

x = np.array([[2, 5, 8], [9, 4, 7], [6, 3, 1]])
print('原数组')
print(x)
print('\n')

# 调用ptp()函数(最大数-最小数),获取最小值,无可选参数
print('无可选参数输出')
print(np.ptp(x))
print('\n')
print('可选参数axis=0')
print(np.ptp(x, axis=0))
print('\n')
print('可选参数axis=1')
print(np.ptp(x, axis=1))
print('\n')

# 输出结果
# 原数组
# [[2 5 8]
#  [9 4 7]
#  [6 3 1]]
# 无可选参数输出
# 8
#
#
# 可选参数axis=0
# [7 2 7]
#
#
# 可选参数axis=1
# [6 5 5]


4、percentile()

百分位数:是统计中使用的度量,表示小于这个值的观察值的百分比。

函数格式:

numpy.percentile(a, q, axis)

参数说明:

参数名称参数类型(是否必填)注释
a数组
q百分比
axis轴,指定在哪个轴上计算

实例代码:

x = np.array([[2, 5, 8], [9, 4, 7], [6, 3, 1]])
print('原数组')
print(x)
print('\n')

# 调用percentile()函数
print(np.percentile(x, 30, axis=0))
print(np.percentile(x, 50, axis=1))
# 输出结果
# 原数组
# [[2 5 8]
#  [9 4 7]
#  [6 3 1]]

# 输出结果
# [4.4 3.6 4.6]
# [5. 7. 3.]

5、median()

函数格式:

numpy.median ( a, axis=None, out=None, overwrite_input=False ,keepdims=np._NoValue )

参数说明:

参数名称参数类型(是否必填)注释
a数组
axis轴,指定在哪个轴上计算峰值
out指定结果的存储位置
overwrite_input可选参数,如果为True,则允许在计算中使用输入数组的内存。这可能会在某些情况下提高性能,但可能会修改输入数组的内容。
keepdims如果为True,将保持结果数组的维度数目与输入数组相同。如果为False(默认值),则会去除计算后维度为1的轴

实例代码:


x = np.array([[2, 5, 8], [9, 4, 7], [6, 3, 1]])
print('原数组')
print(x)
print('\n')
# 调用median()函数

print(np.median(x))
print(np.median(x, axis=0))
print(np.median(x, axis=1))

# 输出结果
# 原数组
# [[2 5 8]
#  [9 4 7]
#  [6 3 1]]

# 输出结果
# 5.0
# [6. 4. 7.]
# [5. 7. 3.]

6、mean()

函数格式:

numpy.mean ( a, axis=None, dtype=None, out=None ,keepdims=np._NoValue )

参数说明:

参数名称参数类型(是否必填)注释
a数组
axis轴,指定在哪个轴上计算峰值
out指定结果的存储位置
dtype用于指定输出的数据类型
keepdims如果为True,将保持结果数组的维度数目与输入数组相同。如果为False(默认值),则会去除计算后维度为1的轴

实例代码:


x = np.array([[2, 5, 8], [9, 4, 7], [6, 3, 1]])
print('原数组')
print(x)
print('\n')

# 调用mean()函数
print(np.mean(x))
print(np.mean(x, axis=0))
print(np.mean(x, axis=1))



# 输出结果
# 原数组
# [[2 5 8]
#  [9 4 7]
#  [6 3 1]]

# 输出结果
# 5.0
# [5.66666667 4.         5.33333333]
# [5.         6.66666667 3.33333333]

7、average()

函数格式:

numpy. average ( a, axis=None, weights=None, returned=False )

参数说明:

参数名称参数类型(是否必填)注释
a数组
axis轴,指定在哪个轴上计算峰值
weights用于指定对应数据点的权重。如果不提供权重数组,则默认为等权重
returned如果为True,将同时返回加权平均值和权重总和

实例代码:


x = np.array([[2, 5, 8], [9, 4, 7], [6, 3, 1]])
print('原数组')
print(x)
print('\n')

# 调用
print(np.average(x))
print(np.average(x, axis=0))
print(np.average(x, axis=1, returned=True))


# 输出结果
# 原数组
# [[2 5 8]
#  [9 4 7]
#  [6 3 1]]

# 输出结果
# 5.0
# [5.66666667 4.         5.33333333]
# (array([5.        , 6.66666667, 3.33333333]), array([3., 3., 3.]))

🧂禅言

这一节统计函数整体来说还是比较简单的,没有什么超额的知识点,但是请记住眼过千遍,不如手过一遍

可不要小看这些写的demo,有时候在项目中碰到个问题,还是这种小demo会解决的呦!

其实也都能看到越学到后面,跟上学的时候学的数学的关联性越大了,所以呢?知识没有什么用与不用直说,

如果没用到,那是没碰到时候。书到用时方恨少 送给各位!🤣🤣🤣