- 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 陣列中的itemsize屬性指示陣列中每個元素的大小(以位元組為單位)。此大小由陣列元素的資料型別(例如,整數、浮點數)確定。
通過了解itemsize,您可以估計陣列的總記憶體消耗。這對於理解陣列的記憶體佈局和儲存需求非常重要,尤其是在處理大型資料集時。
訪問陣列元素大小
您可以使用itemsize屬性訪問 NumPy 陣列的itemsize。此屬性返回一個整數,表示陣列中每個元素的大小(以位元組為單位)。
示例
在下面的示例中,我們訪問整數陣列和浮點數陣列的itemsize:
import numpy as np
# Creating arrays with different data types
array_int32 = np.array([1, 2, 3], dtype=np.int32)
array_float64 = np.array([1.0, 2.0, 3.0], dtype=np.float64)
# Checking itemsize
print("Itemsize of int32 array:", array_int32.itemsize)
print("Itemsize of float64 array:", array_float64.itemsize)
獲得的輸出如下:
Itemsize of int32 array: 4 Itemsize of float64 array: 8
計算itemsize記憶體使用情況
要計算陣列佔用的總記憶體,您可以將“itemsize”乘以陣列中的元素總數。
例如,如果一個數組有“1000”個元素,itemsize 為“8”位元組,則該陣列使用的總記憶體為“1000 * 8” = “8000”位元組。
示例
在這個例子中,我們計算一個二維陣列的總記憶體使用情況:
import numpy as np
# Create a 2D array
array_2d = np.array([[1, 2], [3, 4]], dtype=np.float32)
# Calculate total memory usage
total_memory_usage = array_2d.size * array_2d.itemsize
print(f"Total memory usage: {total_memory_usage} bytes")
這將產生以下結果:
Total memory usage: 16 bytes
不同資料型別的itemsize
在 NumPy 中,不同的資料型別具有不同的 itemsize 值。例如:
- np.int8 的 itemsize 為 1 位元組。
- np.int16 的 itemsize 為 2 位元組。
- np.float64 的 itemsize 為 8 位元組。
- np.complex128 的 itemsize 為 16 位元組。
示例
在下面的示例中,我們建立具有不同資料型別的陣列,然後檢查每個陣列的itemsize:
import numpy as np
# Creating arrays with different data types
array_int8 = np.array([1, 2, 3], dtype=np.int8)
array_int16 = np.array([1, 2, 3], dtype=np.int16)
array_uint32 = np.array([1, 2, 3], dtype=np.uint32)
array_float16 = np.array([1.0, 2.0, 3.0], dtype=np.float16)
array_complex128 = np.array([1+2j, 3+4j, 5+6j], dtype=np.complex128)
# Checking itemsize
print("Itemsize of int8 array:", array_int8.itemsize)
print("Itemsize of int16 array:", array_int16.itemsize)
print("Itemsize of uint32 array:", array_uint32.itemsize)
print("Itemsize of float16 array:", array_float16.itemsize)
print("Itemsize of complex128 array:", array_complex128.itemsize)
獲得的輸出如下:
Itemsize of int8 array: 1 Itemsize of int16 array: 2 Itemsize of uint32 array: 4 Itemsize of float16 array: 2 Itemsize of complex128 array: 16
透過修改資料型別來更改itemsize
透過修改陣列的資料型別,您可以更改其itemsize,這會影響每個元素佔用的記憶體量,以及陣列的總記憶體使用量。
您可以使用astype()函式更改NumPy陣列的資料型別。此函式接受您要將陣列轉換到的目標資料型別。
示例
在下面的示例中,我們將陣列的資料型別從“int32”更改為“int8”,並檢查該陣列的itemsize:
import numpy as np
# Original array with int32
array_original = np.array([1, 2, 3], dtype=np.int32)
print(f"Original itemsize: {array_original.itemsize} bytes")
# Change data type to int8
array_new = array_original.astype(np.int8)
print(f"New itemsize: {array_new.itemsize} bytes")
執行上述程式碼後,我們將獲得以下輸出:
Original itemsize: 4 bytes New itemsize: 1 bytes
廣告