2. 统计量
这里是共同的参数:
a
:一个array_like
对象axis
:可以为为int
或者tuple
或者None
:None
:将a
展平,在整个数组上操作int
:在a
的指定轴线上操作。如果为-1
,表示沿着最后一个轴(0轴为第一个轴)。tuple of ints
:在a
的一组指定轴线上操作
out
:可选的输出位置。必须与期望的结果形状相同keepdims
:如果为True
,则结果数组的维度与原数组相同,从而可以与原数组进行广播运算。
顺序统计:
numpy.minimum(x1, x2[, out])
:返回两个数组x1
和x2
对应位置的最小值。要求x1
和x2
形状相同或者广播之后形状相同。numpy.maximum(x1, x2[, out])
:返回两个数组x1
和x2
对应位置的最大值。要求x1
和x2
形状相同或者广播之后形状相同。numpy.amin(a[, axis, out, keepdims])
:返回a
中指定轴线上的最小值(数组)、或者返回a
上的最小值(标量)。numpy.amax(a[, axis, out, keepdims])
:返回a
中指定轴线上的最大值(数组)、或者返回a
上的最小值(标量)。numpy.nanmin(a[, axis, out, keepdims])
: 返回a
中指定轴线上的最小值(数组)、或者返回a
上的最小值(标量),忽略NaN
。numpy.nanmax(a[, axis, out, keepdims])
:返回a
中指定轴线上的最大值(数组)、或者返回a
上的最小值(标量)忽略NaN
。numpy.ptp(a[, axis, out])
:返回a
中指定轴线上的最大值减去最小值
(数组),即peak to peak
numpy.argmin(a, axis=None, out=None)
:返回a
中指定轴线上最小值的下标numpy.argmax(a, axis=None, out=None)
:返回a
中指定轴线上最大值的下标numpy.percentile(a, q[, axis, out, ...])
:返回a
中指定轴线上qth 百分比
数据。q=50
表示 50% 分位。你可以用列表或者数组的形式一次指定多个q
。numpy.nanpercentile(a, q[, axis, out, ...])
:返回a
中指定轴线上qth 百分比
数据。q=50
表示 50% 分位。numpy.partition(a, kth, axis=-1, kind='introselect', order=None)
:它将数组执行划分操作:第 位左侧的数都小于第 ;第 位右侧的数都大于等于第 。它返回划分之后的数组numpy.argpartition(a, kth, axis=-1, kind='introselect', order=None)
:返回执行划分之后的下标(对应于数组划分之前的位置)。
排序:
numpy.sort(a, axis=-1, kind='quicksort', order=None)
:返回a
在指定轴上排序后的结果(并不修改原数组)。kind
:字符串指定排序算法。可以为'quicksort'
(快速排序),'mergesort'
(归并排序),'heapsort'
(堆排序)order
:在结构化数组中排序中,用于设置排序的字段(一个字符串)
numpy.argsort(a, axis=-1, kind='quicksort', order=None)
:返回a
在指定轴上排序之后的下标(对应于数组划分之前的位置)。numpy.lexsort(keys, axis=-1)
:- 如果
keys
为数组,则根据数组的最后一个轴的最后一排数值排列,并返回这些轴的排列顺序。如数组a
的shape=(4,5)
,则根据a
最后一行(对应于最后一个轴的最后一排)的5列元素排列。这里axis
指定排序的轴 。对于argsort
,会在最后一个轴的每一排进行排列并返回一个与a
形状相同的数组。 - 如果
keys
为一维数组的元组,则将这些一维数组当作行向量拼接成二维数组并按照数组来操作。
- 如果
numpy.searchsorted(a, v, side='left', sorter=None)
:要求a
是个已排序好的一维数组。本函数将v
插入到a
中,从而使得数组a
维持一个排序好的数组。函数返回的是v
应该插入的位置。side
指定若发现数值相等时,插入左侧left
还是右侧right
- 如果你想一次插入多个数值,可以将
v
设置为列表或者数组。 - 如果
sorter=None
,则要求a
已排序好。如果a
未排序,则要求传入一个一维数组或者列表。这个一维数组或者列表给出了a
的升序排列的下标。(通常他就是argsort
的结果) - 它并不执行插入操作,只是返回待插入的位置
- 如果你想一次插入多个数值,可以将
均值和方差:
numpy.sum(a, axis=None, dtype=None, out=None, keepdims=False)
:计算a
在指定轴上的和numpy.prod(a, axis=None, dtype=None, out=None, keepdims=False)
:计算a
在指定轴上的乘积numpy.median(a[, axis, out, overwrite_input, keepdims])
:计算a
在指定轴上的中位数(如果有两个,则取这两个的平均值)numpy.average(a[, axis, weights, returned])
:计算a
在指定轴上的加权平均数numpy.mean(a[, axis, dtype, out, keepdims])
:计算a
在指定轴上的算术均值numpy.std(a[, axis, dtype, out, ddof, keepdims])
:计算a
在指定轴上的标准差numpy.var(a[, axis, dtype, out, ddof, keepdims])
:计算a
在指定轴上的方差。方差有两种定义:偏样本方差
biased sample variance
。计算公式为 ( 为均值):无偏样本方差
unbiased sample variance
。计算公式为 ( 为均值):当
ddof=0
时,计算偏样本方差;当ddof=1
时,计算无偏样本方差。默认值为 0。当ddof
为其他整数时,分母就是N-ddof
。
numpy.nanmedian(a[, axis, out, overwrite_input, ...])
:计算a
在指定轴上的中位数,忽略NaN
numpy.nanmean(a[, axis, dtype, out, keepdims])
:计算a
在指定轴上的算术均值,忽略NaN
numpy.nanstd(a[, axis, dtype, out, ddof, keepdims])
:计算a
在指定轴上的标准差,忽略NaN
numpy.nanvar(a[, axis, dtype, out, ddof, keepdims])
:计算a
在指定轴上的方差,忽略NaN
相关系数:
numpy.corrcoef(x[, y, rowvar, bias, ddof])
: 返回皮尔逊积差相关numpy.correlate(a, v[, mode])
:返回两个一维数组的互相关系数numpy.cov(m[, y, rowvar, bias, ddof, fweights, ...])
:返回协方差矩阵
直方图:
numpy.unique(ar, return_index=False, return_inverse=False, return_counts=False)
:返回ar
中所有不同的值组成的一维数组。如果ar
不是一维的,则展平为一维。return_index
:如果为True
,则同时返回这些独一无二的数值在原始数组中的下标return_inverse
:如果为True
,则返回元素数组的值在新返回数组中的下标(从而可以重建元素数组)return_counts
:如果为True
,则返回每个独一无二的值在原始数组中出现的次数
numpy.histogram(a, bins=10, range=None, normed=False, weights=None, density=None)
:计算一组数据的直方图。如果a
不是一维的,则展平为一维。bins
指定了统计的区间个数(即统计范围的等分数)。range
是个长度为2的元组,表示统计范围的最小值和最大值(默认时,表示范围为数据的最小值和最大值)。当density
为False
时,返回a
中数据在每个区间的个数;否则返回a
中数据在每个区间的频率。weights
设置了a
中每个元素的权重,如果设置了该参数,则计数时考虑权重。它返回的是一个元组,第一个元素给出了每个直方图的计数值,第二个元素给出了直方图的统计区间的从左到右的各个闭合点 (比计数值的数量多一个)。normed
:作用与density
相同。该参数将被废弃bins
也可以为下列字符串,此时统计区间的个数将通过计算自动得出。可选的字符串有:'auto'
、'fd'
、'doane'
、'scott'
、'rice'
、'sturges'
、'sqrt'
numpy.histogram2d(x, y, bins=10, range=None, normed=False, weights=None)
:计算两组数据的二维直方图numpy.histogramdd(sample, bins=10, range=None, normed=False, weights=None)
:计算多维数据的直方图numpy.bincount(x[, weights, minlength])
:计算每个数出现的次数。它要求数组中所有元素都是非负的。其返回数组中第i
个元素表示:整数i
在x
中出现的次数。要求x
必须一维数组,否则报错。weights
设置了x
中每个元素的权重,如果设置了该参数,则计数时考虑权重。minlength
指定结果的一维数组最少多长(如果未指定,则由x
中最大的数决定)。numpy.digitize(x, bins, right=False)
:离散化。如果x
不是一维的,则展平为一维。它返回一个数组,该数组中元素值给出了x
中的每个元素将对应于统计区间的哪个区间。区间由bins
这个一维数组指定,它依次给出了统计区间的从左到右的各个闭合点。right
为True
,则表示统计区间为左开右闭合(]
;为False
,则表示统计区间为左闭合右开[)
注意:
matplotlib.pyplot
也有一个建立直方图的函数(hist(...)
),区别在于matplotlib.pyplot.hist(...)
函数会自动绘直方图,而numpy.histogram
仅仅产生数据