numpy是一個神級科學計算庫!手把手帶你入門!學會事半功倍!

numpy是一個神級科學計算庫!手把手帶你入門!學會事半功倍!

二維數組由多個一維數組組成

numpy是一個神級科學計算庫!手把手帶你入門!學會事半功倍!

numpy是一個神級科學計算庫!手把手帶你入門!學會事半功倍!

np.size :數組中所有元素的總量,相當於數組的 shape 中所有元素的乘積,例如矩陣的元素總量為行與列的乘積。

>>>print('數組a的大小是:',a.size)

>>>print('數組b的大小是:',b.size)

>>>print('數組c的大小是:',c.size)

數組a的大小是: 3

數組b的大小是: 9

數組c的大小是: 12

numpy是一個神級科學計算庫!手把手帶你入門!學會事半功倍!

np.array創建數組時,會將多層嵌套的列表轉換為多維數組。

>>>b = np.array([(1.5,2,3), (4,5,6)])

>>>b

array([[1.5, 2. , 3. ],

[4. , 5. , 6. ]])

創建數組時我們還可以指定數據類型

>>>c = np.array( [ [1,2], [3,4] ], dtype=complex )#指定數據類型為複數

>>>c

array([[1.+0.j, 2.+0.j],

[3.+0.j, 4.+0.j]])

我們經常遇到這樣的情況,我們並不知道數組的元素,但是知道數組的大小。因此,NumPy提供了多個函數,用於創建有初始數值的佔位數組,這樣可以減少不必要的數組增長及運算成本。

zeros 函數創建包含全是0的數組, ones 函數創建全是1的數組, empty 函數創建一個隨機數值數組,其中的數值由當時的內存狀態決定。這些函數創建的數組的數據類型都是默認的float64.

numpy是一個神級科學計算庫!手把手帶你入門!學會事半功倍!

打印數組

當你在屏幕打印一個數組時,NumPy顯示這個數組的方式和嵌套的列表是相似的。但遵守以下佈局:

  • 最後一維由左至右打印
  • 倒數第二維從上到下打印
  • 其餘維都是從上到下打印,且通過空行分隔

如下所示,一維數組輸出為一行、二維為矩陣、三維為矩陣列表。

numpy是一個神級科學計算庫!手把手帶你入門!學會事半功倍!

基本運算

數組中的算術運算一般是元素級的運算,運算結果會產生一個新的數組。

不同於很多矩陣語言,乘積運算操作 * 在NumPy中是元素級的運算。如果想要進行矩陣運算,可以使用 dot 函數或方法。

numpy是一個神級科學計算庫!手把手帶你入門!學會事半功倍!

當操作不同數據類型的數組時,最後輸出的數組類型一般會與更普遍或更精準的數組相同(這種行為叫做 Upcasting)。

numpy是一個神級科學計算庫!手把手帶你入門!學會事半功倍!

默認狀態下,這些運算會把數組視為一個數字列表而不關心它的shape。然而,可以指定axis參數針對哪一個維度進行運算。例如axis=0將針對每一個列進行運算。

numpy是一個神級科學計算庫!手把手帶你入門!學會事半功倍!

索引、切片和迭代

一維數組可以索引、切片和迭代,就像列表和其他python數據類型。

numpy是一個神級科學計算庫!手把手帶你入門!學會事半功倍!

b[i] 中的i代表i後面有足夠多的:,用於表示其他維度的索引。你也可以使用點號 ... 來表示。

點號代表需要的足夠多的列,用於使其他維度的索引值完整。例如,x是一個五維數組,那麼

  • x[1,2,...] 相當於 x[1,2,:,:,:]
  • x[...,3] 相當於 x[:,:,:,:,3]
  • x[4,...,5,:] 相當於 x[4,:,:,5,:]
numpy是一個神級科學計算庫!手把手帶你入門!學會事半功倍!

但是,如果你想迭代輸出數組中的每一個元素,你可以使用 flat 屬性實現,這個屬性生成一個可以迭代所有元素的迭代器。

numpy是一個神級科學計算庫!手把手帶你入門!學會事半功倍!


分享到:


相關文章: