
- 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 陣列的形狀是一個整數元組。元組中的每個整數表示陣列沿特定維度或軸的大小。例如,形狀為 (3, 4) 的陣列有 3 行 4 列。
- 對於二維陣列,形狀是一個有兩個元素的元組:行數、列數。
- 對於三維陣列,形狀是一個有三個元素的元組:深度、行數、列數。
- 更高維度的陣列遵循相同的模式,每個維度的尺寸都作為元組中的一個額外元素表示。
訪問陣列形狀
可以使用shape屬性訪問 NumPy 陣列的形狀。此屬性返回一個整數元組,每個整數表示陣列沿特定維度的尺寸。
示例
在以下示例中,我們建立一個二維陣列,並使用 NumPy 的“shape”屬性獲取其形狀:
import numpy as np # Creating a 2D array array = np.array([[1, 2, 3], [4, 5, 6]]) # Accessing the shape print("Shape of the array:", array.shape) print("Number of dimensions:", array.ndim) print("Total number of elements:", array.size)
形狀 (2, 3) 表示陣列有 2 行 3 列。它是一個二維陣列:
Shape of the array: (2, 3) Number of dimensions: 2 Total number of elements: 6
更改陣列形狀
更改 NumPy 陣列的形狀是指轉換陣列的維度而不更改其資料。例如,可以將一維陣列重塑為二維陣列,反之亦然,只要元素總數保持不變。
要重塑 NumPy 中的陣列,我們使用reshape()函式。如果可能,此函式將返回具有指定形狀的陣列的新檢視。如果無法使用檢視進行重塑,則會建立陣列的副本。
示例
在此示例中,我們透過將“-1”作為引數傳遞給 Numpy reshape() 函式,將二維陣列的形狀更改為一維陣列。這會自動推斷一個維度的尺寸:
import numpy as np # Creating a 2D array array_2d = np.array([[1, 2, 3], [4, 5, 6]]) print("Original 2D array:\n", array_2d) # Reshaping to a 1D array array_flattened = array_2d.reshape(-1) print("Flattened to 1D array:", array_flattened)
這將產生以下結果:
Original 2D array: [[1 2 3] [4 5 6]] Flattened to 1D array: [1 2 3 4 5 6]
處理重塑錯誤
有時,如果 NumPy 中的陣列重塑使用不正確,可能會導致錯誤。當嘗試將陣列重塑為與陣列中元素總數不相容的形狀時,就會發生此錯誤。
重塑時元素總數必須保持不變。如果重塑操作與元素總數不相容,NumPy 將引發ValueError。
示例:不相容的形狀錯誤
當嘗試將陣列重塑為與陣列中元素總數不相容的形狀時,會發生不相容的形狀錯誤。
在下面的示例中,原始陣列有“12”個元素。將其重塑為形狀“(3, 5)”需要 15 個元素,這會導致 ValueError:
import numpy as np # Creating an array with 12 elements array = np.arange(12) # Attempting to reshape into a shape that requires more elements try: reshaped_array = array.reshape((3, 5)) except ValueError as e: print("Error:", e)
以下是上述程式碼的輸出:
Error: cannot reshape array of size 12 into shape (3,5)
示例:負維度錯誤
在重塑維度中使用-1告訴 NumPy 自動計算該維度的尺寸。但是,如果剩餘的維度與元素總數不匹配,則會引發錯誤:
import numpy as np # Creating an array with 10 elements array = np.arange(10) # Attempting to reshape with an incompatible automatic dimension try: reshaped_array = array.reshape((2, -1, 4)) except ValueError as e: print("Error:", e)
獲得的輸出如下所示:
Error: cannot reshape array of size 10 into shape (2,newaxis,4)
示例:維度規範不正確
指定不正確或非整數維度值(例如,-1 以外的負值或非整數)會導致錯誤:
import numpy as np # Creating an array with 16 elements array = np.arange(16) # Attempting to reshape with an invalid dimension try: reshaped_array = array.reshape((4, 4.5)) except ValueError as e: print("Error:", e)
執行上述程式碼後,我們將獲得以下輸出:
Traceback (most recent call last): File "/home/cg/root/669f5fd83ed84/main.py", line 8, in <module> reshaped_array = array.reshape((4, 4.5)) TypeError: 'float' object cannot be interpreted as an integer
廣告