1 2 3 4 5 6 7 8 9 10 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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
| #!/usr/bin/env python3 # -*- coding: utf-8 -*- # 2019-10-25 # numpy 学习笔记 # icenaive # 参考: https://github.com/lijin-THU/notes-python # 仅供个人学习使用 # # 5. 数组方法
import numpy as np
# 求和 a = np.array([[1, 2, 3], [4, 5, 6]]) b = a[0]
print(a) s = sum(b) # python 中sum 二维对应相加 print(s) print(np.sum(a))
# 指定求和的维度 # 沿着第一维求和 print(np.sum(a, axis = 0))
# 沿着第二维求和 print(np.sum(a, axis = 1))
# 支持负索引 print(np.sum(a, axis = -2))
# 或者使用sum方法 print(a.sum())
print(a.sum(axis = 0)) print(a.sum(axis = -1))
# 求积 # 求所有元素的积 print(a.prod())
# 或者使用函数调用的形式 print(np.prod(a, axis = 0)) print(np.prod(a, axis = -1))
# 求最值 # numpy输出精度控制 np.set_printoptions(precision = 3) a = np.random.rand(3, 4) print(a)
# round() python 内置方法 设定输出精度 # 全局最小 print(round(a.min(), 3), round(a.max(), 4))
# 沿着某一个轴的最小值 print(a.min(axis = 0), a.max(axis = -1))
# 最大最小值的位置 # 使用 argmin, argmax 方法 print(a) print(a.min()) print(a.argmin()) print(a.argmin(axis = 0)) print(a.argmax()) print(a.argmax(axis = -1))
# 使用mean 方法 # 均值 a = np.array([[1, 2, 3], [4, 5, 6]]) print(a) print(a.mean())
# 也可以使用mean函数 print(np.mean(a)) # 也可以使用average函数 print(np.average(a, axis = 0))
# average 函数还支持加权平均 # 每个值乘以权重 在 除以 权重之和 # 例如 3 = (1 * 1 + 4 * 2) / (1 + 2) print(a) print(np.average(a, axis= 0, weights = [1, 2]))
# 标准差 # 用std方法计算标准差 print("a= \n", a) print(a.std(axis = 0))
# 用var方法计算方差 print(a.var(axis = -1))
# 或者使用函数方式 print(np.var(a, axis = 1)) print(np.std(a, axis = -2))
# clip方法 # 将数值限制在某个范围 print(a) print(a.clip(3, 5)) print(a) # 小于3的变成3 大于5的变成5
# ptp方法 # 计算最大值与最小值之差 print(a.ptp(axis = 1)) print(a.ptp())
# round方法 # 近似 默认到整数 a = np.array([1.35, 2.5, 1.5]) # 这里对于 .5是近似到最近的偶数值 # round()如果只有一个数作为参数,不指定位数的时候,返回的是一个整数, # 而且是最靠近的整数(这点上类似四舍五入)。但是当出现.5的时候,两边的距离都一样,round()取靠近的偶数,这就是为什么round(2.5) = 2。 # 当指定取舍的小数点位数的时候,一般情况也是使用四舍五入的规则,但是碰到.5的这样情况, # 如果要取舍的位数前一个数是奇数,则直接舍弃,如果偶数这向上取舍
print(round(2.635, 2)) # 前一个数 3 舍弃 print(round(2.645, 2)) # 前一个数 4 向上取舍 print(round(2.5)) print(round(3.5)) # 返回4 向上取舍
print(a.round()) # 近似到一位小数 print(a.round(decimals = 1))
|