1. 程式人生 > >Numpy基礎 ---建立陣列

Numpy基礎 ---建立陣列

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]]])