
- 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 中從數值範圍建立陣列
在 NumPy 中從數值範圍建立陣列是指生成包含指定範圍內的數字序列的陣列。NumPy 提供了幾個函式來建立這樣的陣列,如下所示:
- 使用 numpy.arange() 函式
- 使用 numpy.linspace() 函式
- 使用 numpy.logspace() 函式
- 使用 numpy.meshgrid() 函式
使用 numpy.arange() 函式
numpy.arange() 函式透過根據指定的起始值、終止值和步長值生成數字序列來建立陣列。它類似於 Python 的內建 range() 函式,但返回的是 NumPy 陣列。以下是語法:
numpy.arange([start, ]stop, [step, ]dtype=None, *, like=None)
其中:
start (可選) - 區間的起始值。預設為 0。
stop - 區間的結束值(不包含)。
step (可選) - 值之間的間隔。預設為 1。
dtype (可選) - 陣列所需的資料型別。如果沒有給出,NumPy 將根據輸入值解釋資料型別。
示例:基本用法
在下面的示例中,我們使用 numpy.arange() 函式生成從 0 到 10(不包含 10)的陣列:
import numpy as np # Create an array from 0 to 9 arr = np.arange(10) print("Array using arange():", arr)
獲得以下輸出:
Array using arange(): [0 1 2 3 4 5 6 7 8 9]
示例:指定起始值、終止值和步長
在這裡,我們使用 numpy.arange() 函式生成從 1 到 10(不包含 10),步長為 2 的陣列:
import numpy as np # Create an array from 1 to 9 with a step of 2 arr = np.arange(1, 10, 2) print("Array with start, stop, and step:", arr)
這將產生以下結果:
Array with start, stop, and step: [1 3 5 7 9]
使用 numpy.linspace() 函式
numpy.linspace() 函式在一個指定區間內生成具有均勻間隔值的陣列。當您需要兩個值之間特定數量的點時,此函式很有用。
此函式類似於 arange() 函式。在這個函式中,指定區間內均勻間隔值的個數,而不是步長。以下是語法:
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)
其中:
start - 區間的起始值。
stop - 區間的結束值。
num (可選) - 要生成的均勻間隔樣本數。預設為 50。
endpoint (可選) - 如果為 True,則 stop 是最後一個樣本。如果為 False,則不包含。預設為 True。
retstep (可選) - 如果為 True,則返回 (samples, step),其中 step 是樣本之間的間距。預設為 False。
dtype (可選) - 陣列所需的資料型別。如果沒有給出,NumPy 將根據輸入值解釋資料型別。
axis (可選) - 結果中儲存樣本的軸。預設為 0。
示例:基本用法
在這個示例中,我們使用 numpy.linspace() 函式生成一個從 0 到 1(預設情況下包含 1)的 10 個均勻間隔值的陣列:
import numpy as np # Create an array of 10 evenly spaced values from 0 to 1 arr = np.linspace(0, 1, 10) print("Array using linspace():", arr)
以上程式碼的輸出如下:
Array using linspace(): [0. 0.11111111 0.22222222 0.33333333 0.44444444 0.55555556 0.66666667 0.77777778 0.88888889 1. ]
示例:排除端點
在這裡,我們使用 numpy.linspace() 函式生成一個從 0 到略小於 1 的 10 個均勻間隔值的陣列,不包括端點:
import numpy as np # Create an array arr = np.linspace(0, 1, 10, endpoint=False) print("Array with endpoint=False:", arr)
獲得的輸出如下所示:
Array with endpoint=False: [0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
示例:返回步長
現在,我們生成一個從 0 到 1(預設情況下包含 1)的 10 個均勻間隔值的陣列,並返回步長:
import numpy as np # Create an array arr, step = np.linspace(0, 1, 10, retstep=True) print("Array with step size:", arr) print("Step size:", step)
執行以上程式碼後,我們得到以下輸出:
Array with step size: [0. 0.11111111 0.22222222 0.33333333 0.44444444 0.55555556 0.66666667 0.77777778 0.88888889 1. ] Step size: 0.1111111111111111
使用 numpy.logspace() 函式
numpy.logspace() 函式生成一個數組,其值在對數尺度上均勻分佈。這對於生成跨越幾個數量級的數值非常有用。以下是語法:
numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None, axis=0)
其中:
start - 序列的起始值(作為底數的冪)。
stop - 序列的結束值(作為底數的冪)。
num (可選) - 要生成的樣本數。預設為 50。
endpoint (可選) - 如果為 True,則 stop 是最後一個樣本。如果為 False,則不包含。預設為 True。
base (可選) - 對數空間的底數。預設為 10.0。
dtype (可選) - 陣列所需的資料型別。如果沒有給出,NumPy 將根據輸入值解釋資料型別。
axis (可選) - 結果中儲存樣本的軸。預設為 0。
示例
在下面的示例中,我們使用 numpy.logspace() 函式生成一個在對數尺度上從 21 到 210 均勻分佈的 10 個值的陣列,底數為 2:
import numpy as np # Create an array arr = np.logspace(1, 10, 10, base=2) print("Array with base 2:", arr)
我們得到以下輸出:
Array with base 2: [ 2. 4. 8. 16. 32. 64. 128. 256. 512. 1024.]
使用 numpy.meshgrid() 函式
numpy.meshgrid() 函式根據座標向量生成座標矩陣。這對於建立用於在 2D 或 3D 空間中評估函式的點網格非常有用。以下是語法:
numpy.meshgrid(*xi, copy=True, sparse=False, indexing='xy')
其中:
*xi - 表示網格座標的 1D 陣列。
copy (可選) - 如果為 True,則建立輸入陣列的副本。預設為 True。
sparse (可選) - 如果為 True,則返回稀疏網格以節省記憶體。預設為 False。
indexing (可選) - 指定笛卡爾 ('xy',預設)或矩陣 ('ij') 索引約定。
示例:建立 2D 網格
在下面的示例中,我們使用 numpy.meshgrid() 函式根據 1D 陣列 "x" 和 "y" 生成座標矩陣 "X" 和 "Y",其中 X 表示 2D 網格的 x 座標,Y 表示 y 座標:
import numpy as np # Create 1D arrays for x and y coordinates x = np.arange(1, 4) y = np.arange(1, 3) # Generate coordinate matrices X, Y = np.meshgrid(x, y) print("X grid:") print(X) print("Y grid:") print(Y)
獲得以下輸出:
X grid: [[1 2 3] [1 2 3]] Y grid: [[1 1 1] [2 2 2]]
示例:建立 3D 網格
現在,我們使用矩陣索引 ('ij') 為 3D 網格從 1D 陣列 x、y 和 z 生成座標矩陣 X、Y 和 Z:
import numpy as np # Create 1D arrays for x, y, and z coordinates x = np.arange(1, 4) y = np.arange(1, 3) z = np.arange(1, 3) # Generate coordinate matrices X, Y, Z = np.meshgrid(x, y, z, indexing='ij') print("X grid:") print(X) print("Y grid:") print(Y) print("Z grid:") print(Z)
執行以上程式碼後,我們得到以下輸出:
X grid: [[[1 1] [1 1]] [[2 2] [2 2]] [[3 3] [3 3]]] Y grid: [[[1 1] [2 2]] [[1 1] [2 2]] [[1 1] [2 2]]] Z grid: [[[1 2] [1 2]] [[1 2] [1 2]] [[1 2] [1 2]]]