1. numpy数组的计算
import numpy as npa = 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 npx = 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的值Falsex中是否所有数值都大于1True
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 npa = 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]]