numpy是一個開源的Python計算庫,包括了很多數學函數。numpy的主要功能之一是用來操作數組與矩陣。也有人說Python+numpy=matable。
numpy裡基本資料都是ndarray(N-dimensional array)類型的。
#導入numpy
>>>import numpy as np
>>>a = [1,2,3,4,5,6,7,8,9]
>>>print(a)
>>>a * 2 #把每個清單重複一遍,而不是數值乘以2

想要對清單的數值乘以2可以通過循環來實作,也可以通過把list轉換成ndarray的方法來實作。
#把普通Python中的list轉換成ndarray,這樣就不用寫循環來進行數值運算了,可以直接用這個方法。
>>>A = np.array(a)
>>>print(A)
>>>A
[1 2 3 4 5 6 7 8 9]
array([1, 2, 3, 4, 5, 6, 7, 8, 9])
>>>print(type(A))
<class 'numpy.ndarray'>
數組運算:
#指定次元來建立多元數組
>>>e = np.array([1,2,3,4,5,6],ndmin=3)
>>>print(e)
[[[1 2 3 4 5 6]]]
#指定次元和數值類型來建立多元數組
>>>f = np.array([1,2,3,4,5,6],ndmin=3,dtype=np.complex) #dtype裡的“np.”不能省略
>>>print(f)
[[[1.+0.j 2.+0.j 3.+0.j 4.+0.j 5.+0.j 6.+0.j]]]
ndarry裡有一些基本類型
屬性 | 描述 |
---|---|
ndarray.ndim | 數組軸的個數,也被稱作秩 |
ndarray,shape | 數組在每個次元上大小的整數元組 |
ndarray,size | 數組元素的總個數 |
ndarray.dtype | 數組元素的資料類型,dtype 類型可以用于建立數組中 |
ndarray.itemsize | 數組中每個元素的位元組大小 |
ndarray.data | 包含實際數組元素的緩沖區位址 |
ndarray,flat | 數組元素的疊代器 |
可以通過修改數組的shape屬性,在保持數組元素個數不變的情況下,改變數組每個軸的長度。
>>>g = np.array([[1,2,3,4],[4,5,6,7],[7,8,9,10]])
>>>print(g)
>>>g.shape = 4,3
>>>print(g)
注意從(3,4)改為(4,3)并不是對數組進行轉置,而隻是改變每個軸的大小,數組元素在記憶體中的位置并沒有改變。
>>>g.shape = 2,-1
>>>print(g)
[[ 1 2 3 4 4 5]
[ 6 7 7 8 9 10]]
當某個軸的元素為-1時,将根據數組元素的個數自動計算此軸的長度。
>>>h = g.reshape(6,2)
>>>print(h)
[[ 1 2]
[ 3 4]
[ 4 5]
[ 6 7]
[ 7 8]
[ 9 10]]
使用數組的reshape方法,可以建立一個改變了尺寸的新數組,原數組的shape保持不變