NumPy 基礎 (一) - 建立陣列

Bgods發表於2019-10-28

一、匯入 NumPy

  • 匯入 NumPy

練習 NumPy 之前,首先需要匯入 NumPy 模組,並約定簡稱為 np。

>>> import numpy as np
  • 檢視 NumPy 版本資訊
>>> print(np.__version__)
1.16.2

二、建立陣列

NumPy 的主要物件是多維陣列 Ndarray。在 NumPy 中維度(dimensions)叫做軸(axes),軸的個數叫做秩(rank)。
例如,下方陣列是一個秩為 1 的陣列,因為它只有一個軸,而軸的長度為 3。

>>> [1, 2, 3]
[1, 2, 3]

又例如,下方陣列的秩為 2。第一個維度長度為 2,第二個維度長度為 3。

>>> [[1, 2, 3],
... [4, 5, 6]]
[[1, 2, 3], [4, 5, 6]]

1. 透過列表建立一維陣列

注意:numpy.array和 Python 標準庫array.array並不相同,前者更為強大,這也就是我們學習 NumPy 的重要原因之一。

>>> np.array([1, 2, 3])
array([1, 2, 3])

2. 透過列表建立二維陣列

>>> np.array([(1, 2, 3), (4, 5, 6)])
array([[1, 2, 3],
       [4, 5, 6]])

3. 建立全為 0 的二維陣列

>>> np.zeros((3, 3))
array([[0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.]])

4. 建立全為 1 的三維陣列

>>> np.ones((2, 3,np.ones((2, 3,np.ones((2, 3, 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.]]])

注意:務必想清楚上面 4 個陣列的維度關係

5. 建立一維等差陣列

>>> np.arange(5)
array([0, 1, 2, 3, 4])

6. 建立二維等差陣列

>>> np.arange(6).reshape(2, 3)
array([[0, 1, 2],
       [3, 4, 5]])

7. 建立單位矩陣(二維陣列)

>>> np.eye(3)
array([[1., 0., 0.],
       [0., 1., 0.],
       [0., 0., 1.]])

8. 建立等間隔一維陣列

>>> np.linspace(1, 10, num=6)
array([ 1. ,  2.8,  4.6,  6.4,  8.2, 10. ])

9. 建立二維隨機陣列

>>> np.random.rand(2, 3)
array([[0.50122984, 0.98824375, 0.81388012],
       [0.60951775, 0.02055326, 0.97622093]])

10. 建立二維隨機整數陣列

>>> np.random.randint(5, size=(2, 3))
array([[2, 0, 2],
       [4, 4, 4]])

11. 依據自定義函式建立陣列

>>> np.fromfunction(lambda i, j: i + j, (3, 3))
array([[0., 1., 2.],
       [1., 2., 3.],
       [2., 3., 4.]])
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章