函数 | 作用 |
---|---|
np.random.random(size=None) | size是整数或整型元组;生成 [0, 1) 之间的随机数 |
np.random.uniform(a=0.0, b=1.0, size=None) | 生成 [a, b) 上的均匀分布的随机数 |
np.random.randn(d0, d1, …, dn) | d0, d1, …, dn控制形状;生成标准正态的随机数 |
np.random.randint(a, b=None, size=None) | 生成 [a, b) 上的随机整数;当 b 省略时,生成 [0, a) 上的随机整数 |
np.random.rand(d0, d1, …, dn) | 与random.random的效果一样,只不过size不再是元组 |
np.random.normal(mu=0.0, sigma=1.0, size=none) | 生成正态分布的随机数 |
print(np.random.random())
# 0.7244562837682348
print(np.random.random(2))
# [0.22283098 0.72975332]
print(np.random.random((2, 2)))
# [[0.30166809 0.39634144]
# [0.75755076 0.9186064 ]]
print(np.random.uniform(2, 4))
# 2.8381002639487756
print(np.random.uniform(2, 4, (2, 2)))
# [[2.66832969 3.97791269]
# [3.28302481 2.77316893]]
print(np.random.randn())
# 0.07619658670655587
print(np.random.randn(1))
# [0.15591832]
print(np.random.randn(2, 2))
# [[ 1.80289612 1.26520523]
# [-0.18691585 -1.07256013]]
print(np.random.randint(1, 10))
# 2
print(np.random.randint(1, 10, (2, 2)))
# [[2 7]
# [2 3]]
与 random.random 相比,更推荐使用 random.rand。
print(np.random.rand())
# 0.4294526669056693
print(np.random.rand(2, 3))
# [[0.98298448 0.93969596 0.1592919 ]
# [0.4399961 0.52320823 0.5306809 ]]
print(np.random.normal(0, 1, (2, 3)))
# [[-1.42867251 1.07133406 -0.41702297]
# [ 0.83092417 0.17981133 2.15503384]]
print(np.random.normal(2, 100, (2, 3)))
# [[ -8.0837793 161.39657097 35.2570548 ]
# [ 72.32855794 51.32771614 10.86325406]]
常用数学函数:
函数 | 作用 |
---|---|
np.sin、np.cos | 三角函数 |
np.sqrt | 平方根 |
np.exp | 指数函数 |
np.log、np.log10、np.log2 | 对数函数 |
np.abs | 绝对值 |
np.sum | 求和 |
np.prod | 求积 |
常用统计函数:
函数 | 作用 |
---|---|
np.median | 计算中位数 |
np.mean | 计算平均值 |
np.std | 计算标准差 |
np.var | 计算方差 |
np.corrcoef | 计算相关系数 |
函数 | 作用 |
---|---|
np.all(a, axis=None) | 判断数组a在沿axis方向上的值是否都为True;axis为None时会判断沿所有方向的值是否都为True |
np.any(a, axis=None) | 判断数组a在沿axis方向上的值是否至少有一个为True |
A = np.array([[True, False],[True, True]])
print(np.all(A))
print(np.all(A, axis=0))
print(np.all(A, axis=1))
# False
# [ True False]
# [False True]
print(np.all([1, 1]))
print(np.all([1, 0]))
print(np.all([0, 0]))
# True
# False
# False
A = np.array([[True, False],[True, False]])
print(np.any(A))
print(np.any(A, axis=0))
print(np.any(A, axis=1))
# True
# [ True False]
# [ True True]
print(np.any([1, 1]))
print(np.any([1, 0]))
print(np.any([0, 0]))
# True
# True
# False
函数 | 作用 |
---|---|
np.array_equal(a1, a2) | 如果数组a1和a2的形状相同且其中的元素也相同,则返回True,否则返回False |
np.allclose(a, b, rtol=1e-5, atol=1e-8) | rtol是相对容忍度,atol是绝对容忍度;如果数组a和b在容忍度内按元素相等,则返回True,否则返回False |
print(np.array_equal([1, 2], [1, 2]))
print(np.array_equal(np.array([1, 2]), np.array([1, 2])))
print(np.array_equal([1, 2], [1, 2, 3]))
print(np.array_equal([1, 2], [1, 4]))
# True
# True
# False
# False
如果数组 a 和 b 按元素满足以下不等式:
∣ a − b ∣ ≤ a t o l + r t o l ⋅ ∣ b ∣ |a-b|\leq atol \, + \, rtol\, \cdot\, |b| ∣a−b∣≤atol+rtol⋅∣b∣
则 allclose 函数会返回True。可以看出,上述不等式是非对称的,因此可以得出结论:
allclose(a, b)
和allclose(b, a)
在极少数情况下不相等。
print(np.allclose([1e10, 1e-7], [1.00001e10, 1e-8]))
print(np.allclose([1e10, 1e-8], [1.00001e10, 1e-9]))
print(np.allclose([1e10, 1e-8], [1.0001e10, 1e-9]))
# False
# True
# False