1. numpy数组的计算
import numpy as np
a = np.arange(24)
b = a.reshape(6, 4)
d = b.transpose()
print(a)
print(b)
print('转置')
print(d)
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]
转置
[[ 0 4 8 12 16 20]
[ 1 5 9 13 17 21]
[ 2 6 10 14 18 22]
[ 3 7 11 15 19 23]]
1、求和
print(d)
print('对所有元素求和')
print(d.sum())
print('按列相加')
print(d.sum(axis=0))
print('按列相加')
print(d.sum(axis=1))
[[ 0 4 8 12 16 20]
[ 1 5 9 13 17 21]
[ 2 6 10 14 18 22]
[ 3 7 11 15 19 23]]
对所有元素求和
276
按列相加
[ 6 22 38 54 70 86]
按列相加
[60 66 72 78]
2、累积求和
print(d)
print('累积求和')
print(d.cumsum())
print('按列累积求和')
print(d.cumsum(axis=0))
print('按行累积求和')
print(d.cumsum(axis=1))
[[ 0 4 8 12 16 20]
[ 1 5 9 13 17 21]
[ 2 6 10 14 18 22]
[ 3 7 11 15 19 23]]
累积求和
[ 0 4 12 24 40 60 61 66 75 88 105 126 128 134 144 158 176 198
201 208 219 234 253 276]
按列累积求和
[[ 0 4 8 12 16 20]
[ 1 9 17 25 33 41]
[ 3 15 27 39 51 63]
[ 6 22 38 54 70 86]]
按行累积求和
[[ 0 4 12 24 40 60]
[ 1 6 15 28 45 66]
[ 2 8 18 32 50 72]
[ 3 10 21 36 55 78]
3、最大值
print(d)
print('最大值')
print(d.max())
print('按列最大值')
print(d.max(axis=0))
print('按行最大值')
print(d.max(axis=1))
[[ 0 4 8 12 16 20]
[ 1 5 9 13 17 21]
[ 2 6 10 14 18 22]
[ 3 7 11 15 19 23]]
最大值
23
按列最大值
[ 3 7 11 15 19 23]
按行最大值
[20 21 22 23]
4、最小值
print(d)
print('最小值')
print(d.min())
print('按列最小值')
print(d.min(axis=0))
print('按行最小值')
print(d.min(axis=1))
[[ 0 4 8 12 16 20]
[ 1 5 9 13 17 21]
[ 2 6 10 14 18 22]
[ 3 7 11 15 19 23]]
最小值
0
按列最小值
[ 0 4 8 12 16 20]
按行最小值
[0 1 2 3]
5、均值
print(d)
print('求取均值')
print(d.mean())
print('按列求取均值')
print(d.mean(axis=0))
print('按行求取均值')
print(d.mean(axis=1))
[[ 0 4 8 12 16 20]
[ 1 5 9 13 17 21]
[ 2 6 10 14 18 22]
[ 3 7 11 15 19 23]]
求取均值
11.5
按列求取均值
[ 1.5 5.5 9.5 13.5 17.5 21.5]
按行求取均值
[10. 11. 12. 13.]
2. 统计是否存在满足某条件的值
import numpy as np
x = np.array([1, 2, 3, 4])
y = x < 3 # Numpy内部使用通用函数np.less(x, 3)
print(y)
print(y.dtype)
[ True True False False]
bool
x = np.random.randint(10, size=(3, 4))
print("x = \n", x)
print('x中是否有小于等于0的值')
print(np.any(x <= 0))
print('x中是否所有数值都大于1')
print(np.all(x > 1))
x =
[[5 8 9 2]
[8 2 4 4]
[5 9 8 3]]
x中是否有小于等于0的值
False
x中是否所有数值都大于1
True
3. 统计满足某些条件值得个数
print('统计小于6的数的个数')
print(np.count_nonzero(x < 6))
print('统计小于6的数的个数')
print(np.sum(x < 6))
# np的sum,any和all跟python的sum、any和all要区别开
print('统计小于8且大于2的数的个数')
print(np.sum((x > 2) & (x < 8)))
统计小于6的数的个数
7
统计小于6的数的个数
7
统计小于8且大于2的数的个数
5
4. 四则运算
import numpy as np
a = np.arange(0, 4)
b = np.arange(1, 5)
print(a)
print(b)
print(np.add(a, b))
print(np.subtract(a, b))
print(np.multiply(a, b))
print(np.divide(a, b))
[0 1 2 3]
[1 2 3 4]
[1 3 5 7]
[-1 -1 -1 -1]
[ 0 2 6 12]
[0. 0.5 0.66666667 0.75 ]
5. 数组求和、平均值、方差
b = np.random.randint(0, 10, size=(4, 5))
print(b)
print('中位数')
print(np.median(b))
print('总和')
print(np.sum(b))
print('按列的中位数')
print(np.sum(b, axis=0))
print('平均值')
print(np.average(b))
print('按行的平均值')
print(np.average(b, axis=1))
print('方差')
print(np.var(b))
print(np.var(b, axis=1))
print('标准差')
print(np.std(b))
print('标准差')
print(np.sqrt(np.var(b)))
[[5 1 8 4 6]
[0 3 7 1 2]
[9 0 4 7 3]
[8 1 1 0 6]]
中位数
3.5
总和
76
按列的中位数
[22 5 20 12 17]
平均值
3.8
按行的平均值
[4.8 2.6 4.6 3.2]
方差
8.66
[ 5.36 5.84 9.84 10.16]
标准差
2.9427877939124323
标准差
2.9427877939124323
6. 数组排序
print(b)
print('默认按照最终轴进行排序')
print(np.sort(b))
[[5 1 8 4 6]
[0 3 7 1 2]
[9 0 4 7 3]
[8 1 1 0 6]]
默认按照最终轴进行排序
[[1 4 5 6 8]
[0 1 2 3 7]
[0 3 4 7 9]
[0 1 1 6 8]]