- NumPy 教程
- NumPy - 首頁
- NumPy - 簡介
- NumPy - 環境
- NumPy 陣列
- NumPy - Ndarray 物件
- NumPy - 資料型別
- NumPy 建立和運算元組
- NumPy - 陣列建立例程
- NumPy - 陣列操作
- NumPy - 從現有資料建立陣列
- NumPy - 從數值範圍建立陣列
- NumPy - 遍歷陣列
- NumPy - 陣列重塑
- NumPy - 陣列連線
- NumPy - 陣列堆疊
- NumPy - 陣列分割
- NumPy - 陣列扁平化
- NumPy - 陣列轉置
- NumPy 索引和切片
- NumPy - 索引和切片
- NumPy - 高階索引
- NumPy 陣列屬性和操作
- NumPy - 陣列屬性
- NumPy - 陣列形狀
- NumPy - 陣列大小
- NumPy - 陣列步長
- NumPy - 陣列元素大小
- NumPy - 廣播
- NumPy - 算術運算
- NumPy - 陣列加法
- NumPy - 陣列減法
- NumPy - 陣列乘法
- NumPy - 陣列除法
- NumPy 高階陣列操作
- NumPy - 交換陣列軸
- NumPy - 位元組交換
- NumPy - 複製和檢視
- NumPy - 元素級陣列比較
- NumPy - 陣列過濾
- NumPy - 陣列連線
- NumPy - 排序、搜尋和計數函式
- NumPy - 搜尋陣列
- NumPy - 陣列的並集
- NumPy - 查詢唯一行
- NumPy - 建立日期時間陣列
- NumPy - 二元運算子
- NumPy - 字串函式
- NumPy - 數學函式
- NumPy - 統計函式
- NumPy - 矩陣庫
- NumPy - 線性代數
- NumPy - Matplotlib
- NumPy - 使用 Matplotlib 繪製直方圖
- NumPy - NumPy 的 I/O
- NumPy 排序和高階操作
- NumPy - 陣列排序
- NumPy - 沿軸排序
- NumPy - 使用花式索引排序
- NumPy - 結構化陣列
- NumPy - 建立結構化陣列
- NumPy - 操作結構化陣列
- NumPy - 欄位訪問
- NumPy - 記錄陣列
- Numpy - 載入陣列
- Numpy - 儲存陣列
- NumPy - 將值追加到陣列
- NumPy - 交換陣列的列
- NumPy - 向陣列插入軸
- NumPy 處理缺失資料
- NumPy - 處理缺失資料
- NumPy - 識別缺失值
- NumPy - 刪除缺失資料
- NumPy - 填充缺失資料
- NumPy 效能最佳化
- NumPy - 使用陣列進行效能最佳化
- NumPy - 使用陣列進行向量化
- NumPy - 陣列的記憶體佈局
- Numpy 線性代數
- NumPy - 線性代數
- NumPy - 矩陣庫
- NumPy - 矩陣加法
- NumPy - 矩陣減法
- NumPy - 矩陣乘法
- NumPy - 元素級矩陣運算
- NumPy - 點積
- NumPy - 矩陣求逆
- NumPy - 行列式計算
- NumPy - 特徵值
- NumPy - 特徵向量
- NumPy - 奇異值分解
- NumPy - 求解線性方程組
- NumPy - 矩陣範數
- NumPy 元素級矩陣運算
- NumPy - 求和
- NumPy - 平均值
- NumPy - 中位數
- NumPy - 最小值
- NumPy - 最大值
- NumPy 集合運算
- NumPy - 唯一元素
- NumPy - 交集
- NumPy - 並集
- NumPy - 差集
- NumPy 有用資源
- NumPy 編譯器
- NumPy - 快速指南
- NumPy - 有用資源
- NumPy - 討論
NumPy - 陣列建立例程
建立 NumPy 陣列
我們可以使用 Python NumPy 庫提供的各種函式來建立 NumPy 陣列。此軟體包提供了一個多維陣列物件以及各種其他必要的物件和例程,以實現高效的功能。以下是我們可以用來建立 NumPy 陣列的函式:
- 使用 numpy.array() 函式
- 使用 numpy.zeros() 函式
- 使用 numpy.ones() 函式
- 使用 numpy.arange() 函式
- 使用 numpy.linspace() 函式
- 使用 numpy.random.rand() 函式
- 使用 numpy.empty() 函式
- 使用 numpy.full() 函式
與 Python 列表不同,NumPy 陣列支援按元素運算,並且記憶體效率更高,這使得它們非常適合數學計算。
使用 numpy.array() 函式
我們可以使用numpy.array()函式透過將 Python 列表或元組作為引數傳遞給函式來建立一個數組。
此函式將輸入資料(如列表、元組等)轉換為 ndarray(NumPy 陣列)。以下是語法:
numpy.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0, like=None)
示例:建立一維 NumPy 陣列
在以下示例中,我們使用 numpy.array() 函式從整數列表建立一個一維 NumPy 陣列:
import numpy as np
# Creating a 1D array from a list
my_list = [1, 2, 3, 4, 5]
my_array = np.array(my_list)
print("1D Array:", my_array)
以下是獲得的輸出:
1D Array: [1 2 3 4 5]
示例:建立二維 NumPy 陣列
在這裡,我們使用 numpy.array() 函式從列表的列表建立一個二維 NumPy 陣列:
import numpy as np
# Creating a 2D array from a list of lists
arr = np.array([[1, 2, 3], [4, 5, 6]])
print("2D Array:\n", arr)
這將產生以下結果:
2D Array: [[1 2 3] [4 5 6]]
使用 numpy.zeros() 函式
我們還可以使用numpy.zeros()函式透過將陣列的所需形狀指定為元組或整數來建立陣列。
此函式建立一個填充零的 NumPy 陣列。它接受陣列的形狀作為引數,以及可選的資料型別 (dtype)。預設情況下,資料型別為float64。以下是語法:
numpy.zeros(shape, dtype=float, order='C')
示例
在此示例中,我們使用 numpy.zeros() 函式建立一個包含 5 個元素的 NumPy 陣列,所有元素都初始化為零:
import numpy as np # Creating an array of zeros arr = np.zeros(5) print(arr)
以下是上述程式碼的輸出:
[0. 0. 0. 0. 0.]
使用 numpy.ones() 函式
另一方面,numpy.ones() 函式建立一個所有元素都設定為 1 的陣列。它接受三個主要引數:shape、dtype 和order。
- shape引數(可以是整數或整數元組)定義陣列的維度。
- dtype引數指定陣列元素所需的型別,如果未提供,則預設為“float64”。
- order引數確定陣列的記憶體佈局,可以是行主序 (C 樣式) 或列主序 (Fortran 樣式),其中 'C' 為預設值。
以下是語法:
numpy.ones(shape, dtype=None, order='C')
示例:建立一維全 1 陣列
在下面的示例中,我們使用 numpy.ones() 函式建立一個包含 3 個元素的一維 NumPy 陣列,所有元素都初始化為 1:
import numpy as np # Creating an array of ones arr = np.ones(3) print(arr)
執行上述程式碼後,我們得到以下輸出:
[1. 1. 1.]
示例:建立二維全 1 陣列
在這裡,我們使用 np.ones() 函式建立一個包含 2 行 3 列的二維 NumPy 陣列,並填充 1:
import numpy as np # Creating 2D array of ones array_2d = np.ones((4, 3)) print(array_2d)
產生的結果如下:
[[1. 1. 1.] [1. 1. 1.] [1. 1. 1.] [1. 1. 1.]]
示例:建立 Fortran 順序的全 1 陣列
現在,我們使用 np.ones() 函式和 Fortran 樣式(列主序)順序建立一個包含 2 行 3 列的二維 NumPy 陣列,並填充 1:
import numpy as np # Creating Fortran-ordered array of ones array_F = np.ones((4, 3), order='F') print(array_F)
我們得到如下所示的輸出:
[[1. 1. 1.][1. 1. 1.][1. 1. 1.][1. 1. 1.]]
使用 numpy.arange() 函式
numpy.arange()函式透過根據指定的開始、停止和步長值生成數字序列來建立陣列。它類似於 Python 的內建 range() 函式。
此函式在給定區間內建立均勻間隔的值陣列。它允許指定開始、停止和步長大小,並返回一個 NumPy 陣列。
start - 序列的起始值。如果未指定,則預設為 0。
stop - 序列的結束值。此值是獨佔的,這意味著它不包含在序列中。
step - 序列中每對連續值之間的步長或間隔。如果未指定,則預設為 1。
以下是語法:
numpy.arange([start,] stop[, step,] dtype=None, *, like=None)
示例
在以下示例中,我們首先從 0 到 9 建立一個 NumPy 陣列“array1”。然後,我們使用 np.arange() 函式建立一個另一個數組“array2”,其值從 1 開始到(但不包括)10,步長為 2:
import numpy as np
# Providing just the stop value
array1 = np.arange(10)
print("array1:", array1)
# Providing start, stop and step value
array2 = np.arange(1, 10, 2)
print("array2:",array2)
以下是獲得的輸出:
array1: [0 1 2 3 4 5 6 7 8 9] array2: [1 3 5 7 9]
使用 numpy.linspace() 函式
我們甚至可以使用 numpy.linspace() 函式透過指定開始、停止和我們想要的元素數量來建立陣列。
此函式建立的陣列包含在指定區間內均勻間隔的值。該函式採用開始、停止和元素數量的引數,並生成在開始和停止值之間(包括端點)均勻分佈的值。以下是語法:
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)
numpy.linspace() 函式在您需要在兩個端點之間進行繪圖或數值計算的特定數量的點時特別有用。
示例
在下面的示例中,我們使用 numpy.linspace() 函式建立三個陣列(array1、array2 和 array3),並使用指定的範圍和配置。
“array1”建立了從 0 到 5(包括端點)的 10 個均勻間隔的值。“array2”包含 5 個從 1 到略小於 2 的值,不包括端點。“array3”建立了 5 個從 0 到 10 的值,並返回陣列和連續值之間的步長大小:
import numpy as np
# Creating an array of 10 evenly spaced values from 0 to 5
array1 = np.linspace(0, 5, num=10)
print("array1:",array1)
# Creating an array with 5 values from 1 to 2, excluding the endpoint
array2 = np.linspace(1, 2, num=5, endpoint=False)
print("array2:",array2)
# Creating an array and returning the step value
array3, step = np.linspace(0, 10, num=5, retstep=True)
print("array3:",array3)
print("Step size:", step)
這將產生以下結果:
array1: [0. 0.55555556 1.11111111 1.66666667 2.22222222 2.77777778 3.33333333 3.88888889 4.44444444 5. ] array2: [1. 1.2 1.4 1.6 1.8] array3: [ 0. 2.5 5. 7.5 10. ] Step size: 2.5
使用 random.rand() 函式
或者,我們可以使用 numpy.random.rand() 函式透過將陣列的維度指定為引數來建立陣列。
此函式用於建立指定形狀的陣列,該陣列填充了從 [0, 1) 上的均勻分佈中取樣的隨機值。
它接受陣列維度的引數(如 numpy.random.rand(rows, columns)),並生成具有指定形狀的陣列,其中包含 0 到 1 之間的隨機值。如果未提供引數,則返回單個隨機浮點值。以下是語法:
numpy.random.rand(d0, d1, ..., dn)
示例
在以下示例中,我們使用 numpy.random.rand() 函式生成具有不同維度的隨機浮點數陣列:
import numpy as np
# Generating a single random float
random_float = np.random.rand()
print("random_float:",random_float)
# Generating a 1D array of random floats
array_1d = np.random.rand(5)
print("array_1d:",array_1d)
# Generating a 2D array of random floats
array_2d = np.random.rand(2, 3)
print("array_2d:",array_2d)
# Generating a 3D array of random floats
array_3d = np.random.rand(2, 3, 4)
print("array_3d:",array_3d)
以下是上述程式碼的輸出:
random_float: 0.5030496450079744 array_1d: [0.19476581 0.54430648 0.64571106 0.27443774 0.71874319] array_2d: [[0.91141582 0.58847504 0.37284854] [0.0715398 0.21305363 0.766954 ]] array_3d: [[[0.7295106 0.1582053 0.91376381 0.14099229] [0.6876814 0.19351871 0.18056163 0.61370308] [0.42382443 0.6665121 0.42322218 0.11707395]] [[0.60883975 0.01724199 0.95753734 0.17805716] [0.47770594 0.55840874 0.7375783 0.50512301] [0.73730351 0.85900855 0.16472072 0.2338285 ]]]
使用 numpy.empty() 函式
我們可以使用 numpy.empty() 函式透過將陣列的形狀指定為引數來建立 NumPy 陣列。
此函式初始化陣列而不初始化其元素;陣列的內容是任意的,並且可能會有所不同。當您需要特定大小和資料型別的陣列但打算稍後用資料填充它時,此功能很有用。以下是語法:
numpy.empty(shape, dtype=float, order='C')
與分別將陣列元素初始化為零和一的 numpy.zeros() 函式和 numpy.ones() 函式不同,numpy.empty() 函式不會初始化元素。相反,它分配陣列所需的記憶體,而不設定任何值。
示例
在此示例中,我們使用 numpy.empty() 函式建立一個包含 2 行 3 列的二維陣列 (empty_array):
import numpy as np empty_array = np.empty((2, 3)) print(empty_array)
獲得的輸出如下所示:
[[1.13750619e-313 0.00000000e+000 0.00000000e+000] [0.00000000e+000 0.00000000e+000 0.00000000e+000]]
與 numpy.zeros() 不同,此函式使用未初始化的值初始化陣列,這些值可能是記憶體中留下的任何隨機資料,使其適用於不需要立即初始化的情況。
使用 numpy.full() 函式
使用 numpy.full() 函式,我們可以建立一個具有所需形狀的陣列,並將其中所有元素設定為特定值。以下是語法:
numpy.full(shape, fill_value, dtype=None, order='C')
示例
在下面的示例中,我們使用 numpy.full() 函式建立一個 2x3 的二維陣列,並將其完全填充為值 5 。
import numpy as np array1 = np.full((2, 3), 5) print(array1)
執行上述程式碼後,我們得到以下輸出:
[[5 5 5] [5 5 5]]