Numpy提供各种统计函数,用于数据统计分析。
从数组中找出最小和最大元素
函数numpy.amin()
和numpy.amax()
分别用于查找指定轴上,数组元素的最小值和最大值。
示例
import numpy as np a = np.array([[2,10,20],[80,43,31],[22,43,10]]) print("原始数组:\n") print(a) print('\n') print("数组中最小元素:", np.amin(a)) print("数组中最大元素:", np.amax(a)) print('\n') print("数组列中最小元素:", np.amin(a,0)) print("数组列中最大元素:", np.amax(a,0)) print('\n') print("数组行中最小元素:", np.amin(a,1)) print("数组行中最大元素:", np.amax(a,1))
输出
原始数组: [[ 2 10 20] [80 43 31] [22 43 10]] 数组中最小元素: 2 数组中最大元素: 80 数组列中最小元素: [ 2 10 10] 数组列中最大元素: [80 43 31] 数组行中最小元素: [ 2 31 10] 数组行中最大元素: [20 80 43]
numpy.ptp()
返回数组某个轴方向的峰间值,即最大值最小值之差。
示例
import numpy as np a = np.array([[2,10,20],[80,43,31],[22,43,10]]) print("原始数组:\n", a) print('\n') print("轴1 峰间值:", np.ptp(a,1)) print("轴0 峰间值:", np.ptp(a,0))
输出
原始数组: [[ 2 10 20] [80 43 31] [22 43 10]] 轴1 峰间值: [18 49 33] 轴0 峰间值: [78 33 21]
numpy.percentile()
百分位数是统计中使用的度量,表示小于这个值的观察值占总数的百分比。
例如,第80个百分位数是这样一个值,它使得至少有80%的数据项小于或等于这个值,且至少有(100-80)%的数据项大于或等于这个值。
函数语法:
numpy.percentile(input, q, axis)
参数:
- input: 输入数组
- q: 要计算的百分位数,在 0 ~ 100 之间
- axis: 计算百分位数的轴方向,二维取值0,1
示例
import numpy as np a = np.array([[2,10,20],[80,43,31],[22,43,10]]) print("原始数组:\n", a) print('\n') print("轴0 百分位数", np.percentile(a, 10,0)) print("轴1 百分位数", np.percentile(a, 10, 1))
输出
原始数组: [[ 2 10 20] [80 43 31] [22 43 10]] 轴0 百分位数 [ 6. 16.6 12. ] 轴1 百分位数 [ 3.6 33.4 12.4]
计算数组项的中值、平均值、加权平均值
numpy.median()
中值是一组数值中,排在中间位置的值,可以指定轴方向。
numpy.mean()
计算数组的平均值,可以指定轴方向。
numpy.average()
计算数组的加权平均值,权重用另一个数组表示,并作为参数传入,可以指定轴方向。
考虑一个数组[1,2,3,4]和相应的权值[4,3,2,1],通过将对应元素的乘积相加,再除以权值的和来计算加权平均值。
加权平均值 = (14+23+32+41)/(4+3+2+1)
示例
import numpy as np a = np.array([[1,2,3],[4,5,6],[7,8,9]]) print("原始数组:\n", a) print('\n') print("轴0 中值:", np.median(a, 0)) print("轴0 平均值:", np.mean(a, 0)) wt = np.array([0, 0, 10]) print("轴1 加权平均值:", np.average(a, 1, weights = wt))
输出
原始数组: [[1 2 3] [4 5 6] [7 8 9]] 轴0 中值: [4. 5. 6.] 轴0 平均值: [4. 5. 6.] 轴1 加权平均值: [3. 6. 9.]
标准差与方差
numpy.std()
要计算标准差,可以使用std()
函数。
标准差的公式:
std = sqrt(mean(abs(x - x.mean())**2))
numpy.std()
要计算方差,可以使用var()
函数。
方差公式
var = mean(abs(x - x.mean())**2)
示例
import numpy as np print (np.std([1,2,3,4])) print (np.var([1,2,3,4]))
输出
1.118033988749895 1.25
本文来自博客园,作者:大码王,转载请注明原文链接:https://www.cnblogs.com/huanghanyu/