
- 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 - 討論
Python NumPy Broadcast() 類
NumPy 的 Broadcast() 類模擬廣播機制,並返回一個封裝了將一個數組對另一個數組進行廣播的結果的物件。此類以陣列作為輸入引數。
此類允許對不同形狀的陣列進行運算,方法是虛擬地擴充套件較小的陣列以匹配較大陣列的形狀,而無需實際在記憶體中建立更大的陣列。
語法
numpy.broadcast() 類的語法如下:
numpy.broadcast(*array_like)
引數
NumPy Broadcast() 類以 *array_like 作為輸入引數,它們是要相互廣播的輸入陣列。
返回值
它返回一個 numpy.broadcast 物件,可用於迭代陣列。
示例 1
以下是使用 NumPy Broadcast() 類建立廣播陣列的示例。此處,陣列 a 和 b 被廣播到公共形狀 (3, 3) 並逐元素迭代:
import numpy as np scalar = 5 array_1d = np.array([1, 2, 3]) broadcast_obj = np.broadcast(scalar, array_1d) print("Broadcasted Shape:", broadcast_obj.shape) print("Broadcasted Elements:") for x, y in broadcast_obj: print(f"({x}, {y})")
輸出
Broadcasted Shape: (3,) Broadcasted Elements: (5, 1) (5, 2) (5, 3)
示例 2
下面的示例顯示了將一維陣列 [1, 2, 3] 與二維陣列 [[4], [5], [6]] 進行廣播。一維陣列將在二維陣列的第二維上進行廣播,並建立一個適合逐元素運算的形狀:
import numpy as np array_1d = np.array([1, 2, 3]) array_2d = np.array([[4], [5], [6]]) broadcast_obj = np.broadcast(array_1d, array_2d) print("Broadcasted Shape:", broadcast_obj.shape) print("Broadcasted Elements:") for x, y in broadcast_obj: print(f"({x}, {y})")
輸出
Broadcasted Shape: (3, 3) Broadcasted Elements: (1, 4) (2, 4) (3, 4) (1, 5) (2, 5) (3, 5) (1, 6) (2, 6) (3, 6)
示例 3
在此示例中,我們將 numpy.broadcast() 類與 NumPy 庫的內建廣播機制進行比較:
import numpy as np x = np.array([[1], [2], [3]]) y = np.array([4, 5, 6]) # Broadcasting x against y b = np.broadcast(x, y) # Using nditer to iterate over the broadcasted object print('Broadcast x against y:') for r, c in np.nditer([x, y]): print(r, c) print('\n') # Shape attribute returns the shape of the broadcast object print('The shape of the broadcast object:') print(b.shape) print('\n') # Adding x and y manually using broadcast b = np.broadcast(x, y) c = np.empty(b.shape) print('Add x and y manually using broadcast:') print(c.shape) print('\n') # Compute the addition manually c.flat = [u + v for (u, v) in np.nditer([x, y])] print('After applying the flat function:') print(c) print('\n') # Same result obtained by NumPy's built-in broadcasting support print('The summation of x and y:') print(x + y)
輸出
The shape of the broadcast object: (3, 3) Add x and y manually using broadcast: (3, 3) After applying the flat function: [[5. 6. 7.] [6. 7. 8.] [7. 8. 9.]] The summation of x and y: [[5 6 7] [6 7 8] [7 8 9]]
numpy_array_manipulation.htm
廣告