NumPy入門筆記(一)

2021-10-02 21:10:55 字數 3937 閱讀 5283

numpy是python的乙個科學計算庫,提供了矩陣計算的功能。pandas對numpy庫進行了二次封裝,提供了更強大的功能。

numpy可用來儲存和處理大型矩陣,比python自身的資料結構(字串,佇列,元組,字典)更高階。numpy的主要物件是乙個多維度的,均勻的多維陣列,可以進行矩陣運算。

1.建立矩陣

2.ndarray物件屬性

3.矩陣的擷取

(1) 直接賦值建立矩陣

import numpy as np

#建立一維陣列

arr1=np.

array([

1,2,

3,4,

5])print

(arr1)

print

(arr1.shape) #結果為(5

,)#建立二維陣列

arr2=np.

array([

[1,2

,3,4

,5],

[6,7

,8,9

,10]]

)print

(arr2.shape) #結果為(2

,5),是乙個2行5列的二維陣列

修改一維矩陣和二維矩陣

#修改一維陣列第1個元素的值

arr1[1]

=100 #結果為[

110034

5]#修改二維陣列第1行第2列元素的值

arr2[1,

2]=1000

#修改二維陣列第0行

arr2[0]

=(1,

1,1,

1,1)

arr2[0]

=1

矩陣求和

#全部求和

arr.

sum(

)#按列對二維陣列求和

arr.

sum(axis=0)

#按行對二維陣列求和

arr.

sum(axis=

1)

axis是軸的意思。軸是用來為超過一維的陣列定義的屬性,二維陣列擁有兩個軸。

axis=0為行,axis=1為列。

(2) 通過函式建立矩陣

1.numpy的range()函式

np.

arange

([start,

]stop[

,step,

],dtype=none)

example:

import numpy as np

#建立一維陣列

arr=np.

arange(1

,11,3

)# output:[1

4710]

#建立二維矩陣

arr=np.

arange(1

,13).

reshape(3

,4)print

(arr)

#output:[[

1234

][56

78][

9101112

]]

2.numpy的隨機函式

np.random.

rand(6

) #取6個位於[0,

1]中的隨機樣本

np.random.

randint(1

,100,5

) #從1到100中取5個整數

np.random.

randn(3

,4) #從標準正態分佈中返回多個樣本值生成3行4列的陣列

再次執行指令碼,返回結果不同,若想保持不變,則需設定隨機數種子,如

np.random.

seed(1

)print

(np.random.

randn(3

,4))

多次執行,結果保持不變。

3.numpy的linspace()函式

np.linspace() 函式用於建立乙個一維陣列,陣列是乙個等差數列構成的,格式如下:

np.

linspace

(start, stop, num=

50, endpoint=true, retstep=false, dtype=none)

4.numpy的logspace()函式

np.logspace()函式用於生成等比數列

np.

logspace

(start, stop, num=

50, endpoint=true, base=

10.0

, dtype=none)

#序列的起始值為base**start,終止值為base**stop

ndarray.ndim : 陣列的維數,也稱為秩rank。

ndarray.shape : 陣列各維的大小,是tuple元組型別。對乙個n行,m列的矩陣來說,shape為(n,m)

ndarray.size : 陣列中元素的總數。

ndarray.dtype : 陣列每個元素的型別

1.按行列擷取矩陣

import numpy as np

arr2=np.

array([

[1,2

,3,4

,5],

[6,7

,8,9

,10]]

)#獲取矩陣第0

-1行資料

print

(arr2[0:

1])#獲取矩陣第0行資料

print

(arr2[0]

)print

(arr2[0,

:])#獲取第1行,第2

-4列資料

print

(arr2[1,

2:5]

)#獲取矩陣前兩列的資料

print

(arr2[:,

0:2]

)

numpy擷取陣列部分和python的list擷取部分不同,它不建立新陣列,只是指向原陣列的部分,所以當修改擷取部分的某個值,原陣列也會被修改,它們都指向同乙個陣列。

arr2[0,

1:4]

s[0]=

100print

(arr2)

#output:[[

110034

5][6

78910

]]

2.按條件擷取矩陣

import numpy as np

arr=np.

array([

[1,2

,3,4

,5],

[6,7

,8,9

,10]]

)print

(arr[arr>6]

)print

(arr>6)

#output:[7

8910]

[[false false false false false]

[false true true true true]

]

按條件擷取陣列,使用最多的是將陣列中滿足條件的元素變成指定值,例:

arr[arr>6]

=0print

(arr)

#output:[[

1234

5][6

0000

]]

擴充套件資料

NumPy快速入門學習筆記

可以說是剛剛入門了python,最近需要做深度學習的任務,但是發現numpy的知識一無所知,所以應該靜下來學一學。寫這些東西,最重要的就是想要自己去用它,在這裡也跟自己提個醒,避免頻繁的陷入一些不必要的學習之中。要明白自己學習的目的,是為了用而學習,而不是為了學習而去學習 就目前階段,許多事物擺在眼...

面向矩陣的numpy入門筆記

我先宣告我學numpy的目的 在python中使用矩陣 我需要在機器學習中使用矩陣 所以我的目的很明確,矩陣 矩陣在numpy中叫ndarray the n dimensional array 我就是很喜歡問這個ndarray為啥叫ndarray,可是大多教程 特別是中文教程 都不說,這就不利於我們...

Numpy學習筆記(一)

numpy的主要物件是同種元素的多維陣列,這和python的列表稍微不同,python列表的元素型別可以不同。在numpy中,維度 dimensions 叫做軸 axes 軸的個數叫做秩 rank 比如 1,2,3 是乙個秩為1 的陣列,軸長度為3 1.0.0.0.1.2.陣列的秩為2,第一維的維度...