numpy庫的一些函數(一)
- 2020 年 1 月 27 日
- 筆記
1. np.eye(n) : 生成單位矩陣;
print(np.eye(3)) [[1. 0. 0.] [0. 1. 0.] [0. 0. 1.]]
2. np.concatenate()拼接;
3. np.(a) np.floor(a) : 計算各元素的ceiling 值, floor值(ceiling向上取整,floor向下取整);
4. np.rint(a) : 各元素 四捨五入;
5. np.modf(a) : 將數組各元素的小數和整數部分以兩個獨立數組形式返回;
a=np.array([3.1,4.2,5.3]) print(a) print(np.modf(a))
結果為:
[3.1 4.2 5.3] (array([0.1, 0.2, 0.3]), array([3., 4., 5.]))
6. np.sign(a) : 計算各元素的符號值 1(+),0,-1(-);
7. np.mod(a, b) : 元素級的模運算;
a=np.array([3.1,4.2,5.3]) b=np.array([2,3,4]) print(np.mod(a,b))
結果為:
[1.1 1.2 1.3]
8. np.copysign(a, b) : 將b中各元素的符號賦值給數組a的對應元素;
a=np.array([-3.1,-4.2,-5.3]) b=np.array([2,3,4]) a=np.copysign(a,b) print(a)
結果為:
[3.1 4.2 5.3]
10. np.random.rand():生成指定維度的的[0,1)範圍之間的隨機數,輸入參數為維度;
a=np.random.rand(3,2) print(a)
結果為:
[[0.84840382 0.7015276 ] [0.56983817 0.61783566] [0.64622608 0.66891835]]
11. np.random.randn():生成指定維度的服從標準正態分布的隨機數,輸入參數為維度;
a=np.random.randn(3,2) print(a)
結果為:
[[ 0.08350738 -1.48708854] [-1.30376758 1.42522364] [-0.19306496 -1.10397591]]
12. np.random.randint(low, high = None, size = None):返回隨機數或者隨機數組成的array;
a=np.random.randint(1,6,size=7) print(a)
結果為:
[3 5 1 1 2 3 5]
13.numpy.random.normal(loc=0.0, scale=1.0, size=None):生成正態分布:
loc:float
此概率分布的均值(對應著整個分布的中心centre)
scale:float
此概率分布的標準差(對應於分布的寬度,scale越大越矮胖,scale越小,越瘦高)
size:int or tuple of ints
輸出的shape,默認為None,只輸出一個值
a=np.random.normal(0,1,size=1000) print(np.mean(a)) print(np.std(a)) print(a)
結果為:
0.044268012359035366 1.0229631748467778 [ 8.94681141e-01 5.77664180e-01 -1.25021294e+00 9.34434220e-02 -1.37864604e+00 2.08211752e+00 6.56774147e-01 -8.41141614e-01..............
14.np.random.choice(a, size = None, replace = True, p = None)從給定數組a中隨機選擇,p可以指定a中每個元素被選擇的概率;
a=np.random.choice([2,3,4,5],size=2,p=[0.2,0.3,0.4,0.1]) print(a)
結果為(3和4的概率最大):
[4 3]
15. np.random.seed()函數可以保證生成的隨機數具有可預測性;
np.random.seed(1) print(np.random.rand(2)) np.random.seed(2) print(np.random.rand(2)) np.random.seed(1) print(np.random.rand(2))
結果為:
[0.417022 0.72032449] [0.4359949 0.02592623] [0.417022 0.72032449]
16. numpy.clip(a,a_min,a_max,a=None):這個方法會給出一個區間,在區間之外的數字將被剪除到區間的邊緣,例如給定一個區間[0,1],則小於0的將變成0,大於1則變成1.
a=np.array([-1,-2,-3,1,2,3,4,5]) print(np.clip(a,1,3))
結果為:
[1 1 1 1 2 3 3 3]
—-
numpy也有很多常用函數,比如:
>Pi=np.pi
>np.sin(2*np.pi*x)
>np.mean()
>np.max()
>np.min()
>no.std()
>np.linespace()
>np.arrange()
>np.sort()
>np.fabs()
>np.abs()
#fabs() 函數只適用於 float 和 integer 類型,而 abs() 也適用於複數。
>np.squre()
——-END—–