Numpy基礎 ---建立陣列
阿新 • • 發佈:2018-12-16
Numpy基礎
-------------------------------------------------------------------建立陣列
作業系統:windows7+Anaconda3+python3.6
Numpy是python中的一個數據庫。可以使我們在python中進行向量和矩陣計算。
Numpy包的核心是ndarray物件。
Numpy陣列 和 標準Python Array(陣列) 之間的區別:
- Numpy陣列在建立時具有固定的大小,與Python的原生陣列物件(可以動態增長)不同。 更改ndarray的大小將建立一個新陣列並刪除原來的陣列。
- Numpy陣列中的元素都需要具有相同的資料型別,因此在記憶體中的大小相同。
- 若Python的原生數組裡包含了Numpy的物件,可以有不同大小元素的陣列。
1.建立一個數組有多種方式
Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32
將序列(引數)傳遞給NumPy的array()函式; 傳遞的引數,可以是任意資料型別,不僅僅是列表(list)資料型別。
# 第一種
In[1]: import numpy as np
In[2]: a = np.array([0,1,2,3])
In[3]: a
array([0, 1, 2, 3 ])
In[5]: print(a)
[0 1 2 3]
# 第二種
In[6]: b = np.array((0,1,2,3,4))
In[7]: b
array([0, 1, 2, 3, 4])
In[9]: print(b)
[0 1 2 3 4]
# 第三種
In[10]: c = np.arange(4)
In[11]: c
array([0, 1, 2, 3])
In[10]: print(c)
[0 1 2 3]
# 第四種
In[10]: d = np.linspace(0,np.pi,3,1)
In[10]: d
array([0. , 1.57079633, 3.14159265 ])
In[10]: print(d)
[0. 1.57079633 3.14159265]
2.建立N維陣列的函式
-
建立一個5行5列的數值為浮點1的矩陣
In[2]: import numpy as np In[2]: np.ones([5, 5]) Out[4]: array([[1., 1., 1., 1., 1.], [1., 1., 1., 1., 1.], [1., 1., 1., 1., 1.], [1., 1., 1., 1., 1.], [1., 1., 1., 1., 1.]])
-
建立5行5列的數值為浮點0的矩陣
In[2]: import numpy as np In[2]: np.zeros([5, 5]) OuIn[2]: t[5]: array([[0., 0., 0., 0., 0.], [0., 0., 0., 0., 0.], [0., 0., 0., 0., 0.], [0., 0., 0., 0., 0.], [0., 0., 0., 0., 0.]])
-
建立一個指定 行、列 的陣列 預設值是0或者正無窮或負無窮
In[2]: import numpy as np In[3]: np.empty((3,4)) Out[3]: array([[1.83e-322, 0.00e+000, 0.00e+000, 0.00e+000], [0.00e+000, 0.00e+000, 0.00e+000, 0.00e+000], [0.00e+000, 0.00e+000, 0.00e+000, 0.00e+000]])
3.Numpy 檢視陣列的屬性
In[2]: a = [1,9,5,2,0,4]
In[2]: b = np.array(a)
In[2]: b
Out[8]: array([1, 9, 5, 2, 0, 4])
In[2]: b.size # 檢視陣列元素個數
Out[9]: 6
In[2]: b.shape # 檢視陣列形狀
Out[10]: (6,)
In[2]: b.ndim # 檢視陣列維度
Out[11]: 1
In[2]: b.dtype # 檢視陣列元素型別
Out[12]: dtype('int32')
4.print陣列(矩陣)
一維陣列被列印為行、二維為矩陣和三維為矩陣列表
In[2]: a = np.arange(6) # 一維陣列
In[2]: a
Out[14]: array([0, 1, 2, 3, 4, 5])
In[2]: b = np.arange(12).reshape(4,3) # 二維陣列
In[2]: b
Out[16]
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]])
In[2]: c = np.arange(24).reshape(2,3,4) #三維陣列
In[2]: c
Out[18]:
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])