import numpy as np
#全部行都能输出
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
NumPy有很多有用的统计函数,用于从数组中给定的元素中查找最小,最大,百分标准差和方差等。
NumPy有很多有用的统计函数,用于从数组中给定的元素中查找最小,最大,百分标准差和方差等。
常用统计函数 | |
---|---|
numpy.amin() | 从给定数组中的元素沿指定轴返回最小值 |
numpy.amax() | 从给定数组中的元素沿指定轴返回最大值 |
numpy.ptp() | 返回沿轴的值的极差(最大值 - 最小值) |
numpy.percentile() | 返回特定轴的百分位数 |
numpy.median() | 返回数组中值 |
numpy.mean() | 返回数组的算术平均值 |
numpy.average() | 返回数组的加权平均值 |
numpy.std() | 返回数组的标准差 |
numpy.var() | 返回数组的方差 |
a = np.array([[3,7,5],[8,4,3],[2,4,9]])
a
array([[3, 7, 5], [8, 4, 3], [2, 4, 9]])
print(np.amin(a))
print(np.amin(a,axis=0)) #返回每一列的最小值
print(np.amin(a,axis=1)) #返回每一行的最小值
2 [2 4 3] [3 3 2]
a = np.array([[3,7,5],[8,4,3],[2,4,9]])
print(a)
[[3 7 5] [8 4 3] [2 4 9]]
print(np.amax(a))
print(np.amax(a,axis=0)) #返回每一列的最大值
print(np.amax(a,axis=1)) #返回每一行的最大值
9 [8 7 9] [7 8 9]
a = np.array([[3,7,5],[8,4,3],[2,4,9]])
print(a)
[[3 7 5] [8 4 3] [2 4 9]]
print(np.ptp(a)) #返回整个数组的极差
print(np.ptp(a, 0)) #返回每一列的极差
print(np.ptp(a, 1)) #返回每一行的极差
7 [6 3 6] [4 5 7]
a = np.array([[30,40,70],[80,20,10],[50,90,60]])
print(a)
[[30 40 70] [80 20 10] [50 90 60]]
print(np.percentile(a,50))
print(np.percentile(a,50, axis = 0)) #按行
print(np.percentile(a,50, axis = 1)) #按列
50.0 [50. 40. 60.] [40. 20. 60.]
中值定义为将数据样本的上半部分与下半部分分开的值
a = np.array([[30,65,70],[80,95,10],[50,90,60]])
print(a)
[[30 65 70] [80 95 10] [50 90 60]]
print(np.median(a))
print(np.median(a, axis = 0)) #按列
print(np.median(a, axis = 1)) #按行
65.0 [50. 90. 60.] [65. 80. 60.]
算术平均值是沿轴的元素的总和除以元素的数量。函数返回数组中元素的算术平均值。如果提供了轴,则沿其计算。
a = np.array([[1,2,3],[3,4,5],[4,5,6]])
print(a)
[[1 2 3] [3 4 5] [4 5 6]]
print(np.mean(a))
print(np.mean(a, axis = 0)) #按列
print(np.mean(a, axis = 1)) #按行
3.6666666666666665 [2.66666667 3.66666667 4.66666667] [2. 4. 5.]
(1*4+2*3+3*2+4*1)/(4+3+2+1)
a = np.array([1,2,3,4])
print(a)
[1 2 3 4]
#不指定权重时相当于 mean 函数
print(np.average(a))
2.5
wts = np.array([4,3,2,1])
print(np.average(a,weights = wts))
2.0
#如果 returned 参数设为 true,则会返回权重的和
print(np.average([1,2,3,4],weights=[4,3,2,1], returned=True))
(2.0, 10.0)
标准差是与均值的偏差的平方的平均值的平方根。标准差公式如下: std = sqrt(mean((x - x.mean())**2))
print(np.std([1,2,3,4]))
1.118033988749895
方差是偏差的平方的平均值,即mean((x - x.mean())** 2)。换句话说,标准差是方差的平方根。
print(np.var([1,2,3,4]))
1.25
Numpy 的转置可以按照你的需要对数组的轴进行转换。
arr = np.arange(15).reshape((3, 5))
print(arr)
[[ 0 1 2 3 4] [ 5 6 7 8 9] [10 11 12 13 14]]
print(arr.T)
[[ 0 5 10] [ 1 6 11] [ 2 7 12] [ 3 8 13] [ 4 9 14]]
arr
array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14]])
a = np.arange(7)
a.shape
a.ndim
a
(7,)
1
array([0, 1, 2, 3, 4, 5, 6])
a.T
array([0, 1, 2, 3, 4, 5, 6])
b = a.reshape(1,-1) #变二维
b
array([[0, 1, 2, 3, 4, 5, 6]])
b.T
array([[0], [1], [2], [3], [4], [5], [6]])
a.shape
(7,)
a.reshape(7,1) #也可以直接reshape
array([[0], [1], [2], [3], [4], [5], [6]])