一、次序统计
1.计算最值
x = np.array([[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25],
[26, 27, 28, 29, 30],
[31, 32, 33, 34, 35]])
y = np.min(x)
print(y)
y = np.min(x, axis=0)
print(y)
y = np.min(x, axis=1)
print(y)
x = np.array([[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25],
[26, 27, 28, 29, 30],
[31, 32, 33, 34, 35]])
y = np.max(x)
print(y)
y = np.max(x, axis=0)
print(y)
y = np.max(x, axis=1)
print(y)
2.计算极差
np.random.seed(20200623)
x = np.random.randint(0, 20, size=[4, 5])
print(x)
print(np.ptp(x))
print(np.ptp(x, axis=0))
print(np.ptp(x, axis=1))
3.计算分位数
np.random.seed(20201126)
x = np.random.randint(0, 20, size=[4, 5])
print(x)
print(np.percentile(x, [25, 50]))
print(np.percentile(x, [25, 50], axis=0))
print(np.percentile(x, [25, 50], axis=1))
二、均值与方差
1.计算中位数
np.random.seed(20200623)
x = np.random.randint(0, 20, size=[4, 5])
print(x)
print(np.median(x))
print(np.median(x, axis=0))
print(np.median(x, axis=1))
2.计算平均值
x = np.array([[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25]])
y = np.mean(x)
print(y)
y = np.mean(x, axis=0)
print(y)
y = np.mean(x, axis=1)
print(y)
3.计算加权平均值
x = np.arange(11, 20).reshape([3, 3])
print(x)
y = np.arange(1, 10).reshape([3, 3])
print(y)
z = np.average(x, weights=y)
print(z)
z = np.average(x, axis=0, weights=y)
print(z)
z = np.average(x, axis=1, weights=y)
print(z)
4.计算方差
x = np.array([[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25],
[26, 27, 28, 29, 30],
[31, 32, 33, 34, 35]])
y = np.var(x)
print(y)
y = np.mean((x - np.mean(x)) ** 2)
print(y)
y = np.var(x, axis=0)
print(y)
y = np.var(x, axis=1)
print(y)
三、相关
1.计算协方差矩阵
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/89864cff3dec6911e8e7bd48aeafab75.png)
x = [1, 2, 3, 4, 6]
y = [0, 2, 5, 6, 7]
print(np.cov(x))
print(np.cov(y))
print(np.cov(x, y))
print(np.var(x))
print(np.var(x, ddof=1))
print(np.var(y))
print(np.var(y, ddof=1))
z = np.mean((x - np.mean(x)) * (y - np.mean(y)))
print(z)
z = np.sum((x - np.mean(x)) * (y - np.mean(y))) / (len(x) - 1)
print(z)
2.计算相关系数
np.random.seed(20200623)
x, y = np.random.randint(0, 20, size=(2, 4))
print(x)
print(y)
z = np.corrcoef(x, y)
print(z)
a = np.dot(x - np.mean(x), y - np.mean(y))
b = np.sqrt(np.dot(x - np.mean(x), x - np.mean(x)))
c = np.sqrt(np.dot(y - np.mean(y), y - np.mean(y)))
print(a / (b * c))