目錄
- 一、隨機抽樣(np.random模塊)
- 1.1 np.random.random()
- 1.2 np.random.uniform()
- 1.3 np.random.randn()
- 1.4 np.random.randint()
- 1.5 np.random.rand()
- 1.6 np.random.normal()
- 二、常用數學/統計函式
- 三、常用邏輯函式
- 3.1 真值測驗
- 3.1.1 np.all()
- 3.1.2 np.any()
- 3.2 比較函式
- 3.2.1 np.array_equal()
- 3.2.2 np.allclose()
一、隨機抽樣(np.random模塊)
| 函式 | 作用 |
|---|---|
| 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) | 生成正態分布的亂數 |
1.1 np.random.random()
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 ]]
1.2 np.random.uniform()
print(np.random.uniform(2, 4))
# 2.8381002639487756
print(np.random.uniform(2, 4, (2, 2)))
# [[2.66832969 3.97791269]
# [3.28302481 2.77316893]]
1.3 np.random.randn()
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]]
1.4 np.random.randint()
print(np.random.randint(1, 10))
# 2
print(np.random.randint(1, 10, (2, 2)))
# [[2 7]
# [2 3]]
1.5 np.random.rand()
與 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 ]]
1.6 np.random.normal()
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 | 計算相關系數 |
三、常用邏輯函式
3.1 真值測驗
| 函式 | 作用 |
|---|---|
| np.all(a, axis=None) | 判斷陣列a在沿axis方向上的值是否都為True;axis為None時會判斷沿所有方向的值是否都為True |
| np.any(a, axis=None) | 判斷陣列a在沿axis方向上的值是否至少有一個為True |
3.1.1 np.all()
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
3.1.2 np.any()
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
3.2 比較函式
| 函式 | 作用 |
|---|---|
| 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 |
3.2.1 np.array_equal()
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
3.2.2 np.allclose()
如果陣列 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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/423695.html
標籤:AI
上一篇:python機器學習 train_test_split()函式用法決議及示例 劃分訓練集和測驗集 以鳶尾資料為例 入門級講解
