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—–