NumPy 教程 之 NumPy 统计函数 4

简介: 这段内容介绍了NumPy库中的统计函数,特别是`numpy.percentile()`函数的应用。该函数用于计算数组中的百分位数,即一个值之下所包含的观测值的百分比。通过实例展示了如何使用此函数来计算不同轴上的百分位数,并保持输出的维度不变。

NumPy 教程 之 NumPy 统计函数 4

NumPy 统计函数

NumPy 提供了很多统计函数,用于从数组中查找最小元素,最大元素,百分位标准差和方差等。

numpy.percentile()

百分位数是统计中使用的度量,表示小于这个值的观察值的百分比。 函数numpy.percentile()接受以下参数。

numpy.percentile(a, q, axis)

参数说明:

a: 输入数组
q: 要计算的百分位数,在 0 ~ 100 之间
axis: 沿着它计算百分位数的轴

首先明确百分位数:

第 p 个百分位数是这样一个值,它使得至少有 p% 的数据项小于或等于这个值,且至少有 (100-p)% 的数据项大于或等于这个值。

举个例子:高等院校的入学考试成绩经常以百分位数的形式报告。比如,假设某个考生在入学考试中的语文部分的原始分数为 54 分。相对于参加同一考试的其他学生来说,他的成绩如何并不容易知道。但是如果原始分数54分恰好对应的是第70百分位数,我们就能知道大约70%的学生的考分比他低,而约30%的学生考分比他高。

这里的 p = 70。

实例

import numpy as np

a = np.array([[10, 7, 4], [3, 2, 1]])
print ('我们的数组是:')
print (a)

print ('调用 percentile() 函数:')

50% 的分位数,就是 a 里排序之后的中位数

print (np.percentile(a, 50))

axis 为 0,在纵列上求

print (np.percentile(a, 50, axis=0))

axis 为 1,在横行上求

print (np.percentile(a, 50, axis=1))

保持维度不变

print (np.percentile(a, 50, axis=1, keepdims=True))

输出结果为:

我们的数组是:
[[10 7 4]
[ 3 2 1]]
调用 percentile() 函数:
3.5
[6.5 4.5 2.5]
[7. 2.]
[[7.]
[2.]]

目录
相关文章
|
5天前
|
Python
NumPy 教程 之 NumPy 矩阵库(Matrix) 4
矩阵是由行和列构成的矩形数组,其元素可以是数字、符号或数学表达式。
16 4
|
7天前
|
Python
NumPy 教程 之 NumPy 矩阵库(Matrix) 2
不同于ndarray,matlib函数生成的是矩阵形式。教程中详细解释了矩阵的概念,并介绍了转置矩阵的实现方式,使用T属性或函数实现。此外,还展示了如何利用`matlib.empty()`创建指定形状的新矩阵,并可选择数据类型及顺序。最后通过示例演示了矩阵填充随机数据的方法。
18 3
|
1天前
|
索引 Python
NumPy 教程 之 NumPy 线性代数 4
NumPy 的线性代数库 `linalg` 提供了丰富的线性代数功能,如点积(`dot`)、向量点积(`vdot`)、内积(`inner`)、矩阵积(`matmul`)、行列式(`determinant`)、求解线性方程(`solve`)和矩阵逆(`inv`)。其中,`numpy.matmul` 用于计算两个数组的矩阵乘积,支持多维数组操作。
27 11
|
3天前
|
Python
NumPy 教程 之 NumPy 矩阵库(Matrix) 8
矩阵是由行和列构成的矩形数组,其元素可以是数字、符号或表达式。教程中讲解了如何使用`numpy.matlib.rand()`创建指定大小且元素随机填充的矩阵,并演示了矩阵与ndarray之间的转换方法。此外,还介绍了如何使用T属性进行矩阵转置。示例代码展示了创建矩阵、将其转换为ndarray以及再转回矩阵的过程。
22 9
|
2天前
|
Serverless Python
NumPy 教程 之 NumPy 线性代数 2
NumPy 的线性代数函数库 `linalg` 提供了丰富的线性代数功能,如 `dot`、`vdot`、`inner`、`matmul`、`determinant`、`solve` 和 `inv` 等。示例展示了 `numpy.vdot()` 函数计算两个数组的点积,即使参数是多维数组也会被展开进行计算。
14 6
|
9天前
|
存储 Python
NumPy 教程 之 NumPy 字节交换 1
本教程介绍了NumPy中的字节交换功能。字节顺序规定了多字节对象在内存中的存储规则,分为大端模式和小端模式。大端模式下,高字节存于低地址;而在小端模式下则相反。`numpy.ndarray.byteswap()`函数用于对ndarray中的每个元素进行字节序转换。示例展示了如何使用该函数实现字节交换,并提供了具体输出结果。
34 11
|
9天前
|
Python
NumPy 教程 之 NumPy 副本和视图 1
NumPy 副本和视图教程介绍:副本是对原始数据的完全拷贝,修改副本不会影响原始数据;而视图则是原始数据的引用,修改视图会影响原始数据。视图通常通过切片操作或 `ndarray.view()` 方法获得,副本则通过 `ndarray.copy()` 或 `deepCopy()` 函数生成。简单赋值不创建副本,而是共享原始数据。
26 9
|
8天前
|
Python
NumPy 教程 之 NumPy 副本和视图 3
副本是对原始数据的完全拷贝,修改副本不影响原始数据;而视图则是原始数据的别名,修改视图会影响原始数据。视图通常在切片操作或使用`view()`函数时产生,副本则在使用`copy()`函数或Python序列切片操作及`deepCopy()`函数时生成。示例展示了如何使用`view()`创建数组视图,并说明了其对原始数组形状的影响。
23 6
|
10天前
|
机器学习/深度学习 搜索推荐 算法
NumPy 教程 之 NumPy 排序、条件筛选函数 8
NumPy提供了多种排序方法,包括快速排序、归并排序及堆排序,各有不同的速度、最坏情况性能、工作空间和稳定性特点。此外,NumPy还提供了`numpy.extract()`函数,可以根据特定条件从数组中抽取元素。例如,在一个3x3数组中,通过定义条件选择偶数元素,并使用该函数提取这些元素。示例输出为:[0., 2., 4., 6., 8.]。
18 8
|
7天前
|
Python
NumPy 教程 之 NumPy 副本和视图 5
NumPy副本和视图教程介绍副本与视图的区别:副本是对原始数据的完全拷贝,修改副本不会影响原始数据;而视图则是对原始数据的引用,修改视图会影响原始数据。视图通常在切片操作或使用`view()`函数时产生;副本则在序列切片操作、调用`deepCopy()`或使用`copy()`函数时生成。示例展示了使用`copy()`函数创建副本,并验证了修改副本不会改变原始数据。
25 4