1. numpy数组的计算

  1. import numpy as np
  2. a = np.arange(24)
  3. b = a.reshape(6, 4)
  4. d = b.transpose()
  5. print(a)
  6. print(b)
  7. print('转置')
  8. print(d)
  9. [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
  10. [[ 0 1 2 3]
  11. [ 4 5 6 7]
  12. [ 8 9 10 11]
  13. [12 13 14 15]
  14. [16 17 18 19]
  15. [20 21 22 23]]
  16. 转置
  17. [[ 0 4 8 12 16 20]
  18. [ 1 5 9 13 17 21]
  19. [ 2 6 10 14 18 22]
  20. [ 3 7 11 15 19 23]]

1、求和

  1. print(d)
  2. print('对所有元素求和')
  3. print(d.sum())
  4. print('按列相加')
  5. print(d.sum(axis=0))
  6. print('按列相加')
  7. print(d.sum(axis=1))
  8. [[ 0 4 8 12 16 20]
  9. [ 1 5 9 13 17 21]
  10. [ 2 6 10 14 18 22]
  11. [ 3 7 11 15 19 23]]
  12. 对所有元素求和
  13. 276
  14. 按列相加
  15. [ 6 22 38 54 70 86]
  16. 按列相加
  17. [60 66 72 78]

2、累积求和

  1. print(d)
  2. print('累积求和')
  3. print(d.cumsum())
  4. print('按列累积求和')
  5. print(d.cumsum(axis=0))
  6. print('按行累积求和')
  7. print(d.cumsum(axis=1))
  8. [[ 0 4 8 12 16 20]
  9. [ 1 5 9 13 17 21]
  10. [ 2 6 10 14 18 22]
  11. [ 3 7 11 15 19 23]]
  12. 累积求和
  13. [ 0 4 12 24 40 60 61 66 75 88 105 126 128 134 144 158 176 198
  14. 201 208 219 234 253 276]
  15. 按列累积求和
  16. [[ 0 4 8 12 16 20]
  17. [ 1 9 17 25 33 41]
  18. [ 3 15 27 39 51 63]
  19. [ 6 22 38 54 70 86]]
  20. 按行累积求和
  21. [[ 0 4 12 24 40 60]
  22. [ 1 6 15 28 45 66]
  23. [ 2 8 18 32 50 72]
  24. [ 3 10 21 36 55 78]

3、最大值

  1. print(d)
  2. print('最大值')
  3. print(d.max())
  4. print('按列最大值')
  5. print(d.max(axis=0))
  6. print('按行最大值')
  7. print(d.max(axis=1))
  8. [[ 0 4 8 12 16 20]
  9. [ 1 5 9 13 17 21]
  10. [ 2 6 10 14 18 22]
  11. [ 3 7 11 15 19 23]]
  12. 最大值
  13. 23
  14. 按列最大值
  15. [ 3 7 11 15 19 23]
  16. 按行最大值
  17. [20 21 22 23]

4、最小值

  1. print(d)
  2. print('最小值')
  3. print(d.min())
  4. print('按列最小值')
  5. print(d.min(axis=0))
  6. print('按行最小值')
  7. print(d.min(axis=1))
  8. [[ 0 4 8 12 16 20]
  9. [ 1 5 9 13 17 21]
  10. [ 2 6 10 14 18 22]
  11. [ 3 7 11 15 19 23]]
  12. 最小值
  13. 0
  14. 按列最小值
  15. [ 0 4 8 12 16 20]
  16. 按行最小值
  17. [0 1 2 3]

5、均值

  1. print(d)
  2. print('求取均值')
  3. print(d.mean())
  4. print('按列求取均值')
  5. print(d.mean(axis=0))
  6. print('按行求取均值')
  7. print(d.mean(axis=1))
  8. [[ 0 4 8 12 16 20]
  9. [ 1 5 9 13 17 21]
  10. [ 2 6 10 14 18 22]
  11. [ 3 7 11 15 19 23]]
  12. 求取均值
  13. 11.5
  14. 按列求取均值
  15. [ 1.5 5.5 9.5 13.5 17.5 21.5]
  16. 按行求取均值
  17. [10. 11. 12. 13.]

2. 统计是否存在满足某条件的值

  1. import numpy as np
  2. x = np.array([1, 2, 3, 4])
  3. y = x < 3 # Numpy内部使用通用函数np.less(x, 3)
  4. print(y)
  5. print(y.dtype)
  6. [ True True False False]
  7. bool
  1. x = np.random.randint(10, size=(3, 4))
  2. print("x = \n", x)
  3. print('x中是否有小于等于0的值')
  4. print(np.any(x <= 0))
  5. print('x中是否所有数值都大于1')
  6. print(np.all(x > 1))
  7. x =
  8. [[5 8 9 2]
  9. [8 2 4 4]
  10. [5 9 8 3]]
  11. x中是否有小于等于0的值
  12. False
  13. x中是否所有数值都大于1
  14. True

3. 统计满足某些条件值得个数

  1. print('统计小于6的数的个数')
  2. print(np.count_nonzero(x < 6))
  3. print('统计小于6的数的个数')
  4. print(np.sum(x < 6))
  5. # np的sum,any和all跟python的sum、any和all要区别开
  6. print('统计小于8且大于2的数的个数')
  7. print(np.sum((x > 2) & (x < 8)))
  8. 统计小于6的数的个数
  9. 7
  10. 统计小于6的数的个数
  11. 7
  12. 统计小于8且大于2的数的个数
  13. 5

4. 四则运算

  1. import numpy as np
  2. a = np.arange(0, 4)
  3. b = np.arange(1, 5)
  4. print(a)
  5. print(b)
  6. print(np.add(a, b))
  7. print(np.subtract(a, b))
  8. print(np.multiply(a, b))
  9. print(np.divide(a, b))
  10. [0 1 2 3]
  11. [1 2 3 4]
  12. [1 3 5 7]
  13. [-1 -1 -1 -1]
  14. [ 0 2 6 12]
  15. [0. 0.5 0.66666667 0.75 ]

5. 数组求和、平均值、方差

  1. b = np.random.randint(0, 10, size=(4, 5))
  2. print(b)
  3. print('中位数')
  4. print(np.median(b))
  5. print('总和')
  6. print(np.sum(b))
  7. print('按列的中位数')
  8. print(np.sum(b, axis=0))
  9. print('平均值')
  10. print(np.average(b))
  11. print('按行的平均值')
  12. print(np.average(b, axis=1))
  13. print('方差')
  14. print(np.var(b))
  15. print(np.var(b, axis=1))
  16. print('标准差')
  17. print(np.std(b))
  18. print('标准差')
  19. print(np.sqrt(np.var(b)))
  20. [[5 1 8 4 6]
  21. [0 3 7 1 2]
  22. [9 0 4 7 3]
  23. [8 1 1 0 6]]
  24. 中位数
  25. 3.5
  26. 总和
  27. 76
  28. 按列的中位数
  29. [22 5 20 12 17]
  30. 平均值
  31. 3.8
  32. 按行的平均值
  33. [4.8 2.6 4.6 3.2]
  34. 方差
  35. 8.66
  36. [ 5.36 5.84 9.84 10.16]
  37. 标准差
  38. 2.9427877939124323
  39. 标准差
  40. 2.9427877939124323

6. 数组排序

  1. print(b)
  2. print('默认按照最终轴进行排序')
  3. print(np.sort(b))
  4. [[5 1 8 4 6]
  5. [0 3 7 1 2]
  6. [9 0 4 7 3]
  7. [8 1 1 0 6]]
  8. 默认按照最终轴进行排序
  9. [[1 4 5 6 8]
  10. [0 1 2 3 7]
  11. [0 3 4 7 9]
  12. [0 1 1 6 8]]