计算扁平化 NumPy 数组的中位数
numpyserver side programmingprogramming
中位数
中位数是集中趋势的统计度量,代表排序值列表的中间值。换句话说,我们可以说中位数是将数据集的上半部分与数据集的下半部分分开的值。
当元素总数为奇数时,计算中位数的数学公式如下。
中位数 = (n+1)/2
其中,n 是给定集合中的最后一个元素。
扁平化数组
扁平化是降低数组维数的过程。扁平化数组是通过扁平化多维数组创建的一维数组,其中数组中的所有元素将连接成一行。
在 Numpy 中,我们有两个函数 ravel() 和 flatten() 用于扁平化数组。上述任何一种方法都可用于展平给定的多维数组。
语法
类似地,我们可以使用 median() 函数计算数组的中位数。
array.flatten() np.median(flatten_array)
其中,
Numpy 是库的名称
flatten 是用于展平给定数组的函数
array 是输入数组
median是用于查找给定数组中位数的函数
flatten_array 是保存扁平化数组
示例
为了首先计算数组的中位数,我们应该使用 flatten() 函数将其扁平化,并将得到的扁平化数组值传递给 median() 函数,如以下示例所示 -
import numpy as np a = np.array([[[34,23],[90,34]],[[43,23],[10,34]]]) print("输入数组:",a) flattened_array = a.flatten() print("给定数组的扁平化数组:",flattened_array) med = np.median(flattened_array) print("给定扁平化数组的中位数:",med)
输出
以下是针对展开数组计算的中位数的输出。
输入数组:[[[34 23] [90 34]] [[43 23] [10 34]]] 给定数组的展开数组:[34 23 90 34 43 23 10 34] 给定展开数组的中位数:34.0
示例
让我们看另一个示例,我们试图计算 3D 数组的中位数 –
import numpy as np a = np.array([[[23,43],[45,56]],[[24,22],[56,78]]]) print("输入数组:",a) flattened_array = a.flatten() print("给定三维数组的扁平化数组:",flattened_array) med = np.median(flattened_array) print("给定扁平化数组的中位数:",med)
输出
输入数组:[[[23 43] [45 56]] [[24 22] [56 78]]] 给定三维数组的扁平化数组:[23 43 45 56 24 22 56 78] 给定扁平化数组:44.0
示例
这是另一个查找 5 维扁平化数组中位数的示例。
import numpy as np a = np.array([[[23,43],[45,56]],[[24,22],[56,78]]],ndmin = 5) print("输入数组:",a) print("数组的维度:",np.ndim(a)) flattened_array = a.flatten() print("给定 3 维数组的扁平化数组:",flattened_array) med = np.median(flattened_array) print("给定扁平化数组的中位数:",med)
输出
输入数组:[[[[[23 43] [45 56]] [[24 22] [56 78]]]]] 数组的维度:5 给定三维数组的扁平数组:[23 43 45 56 24 22 56 78] 给定扁平数组的中位数:44.0