- 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 提供了幾種方法來以各種格式儲存陣列,它們是:
- np.save() 函式: 將單個 NumPy 陣列儲存到二進位制 .npy 格式的檔案中。
- np.savez() 函式: 將多個 NumPy 陣列儲存到壓縮的 .npz 格式的單個檔案中。
- np.savez_compressed() 函式: 與 np.savez() 類似,但會壓縮資料以減小檔案大小。
- np.savetxt() 函式: 將 NumPy 陣列儲存到具有特定格式的文字檔案中。
將陣列儲存到文字檔案
在 NumPy 中將陣列儲存到文字檔案對於以人類可讀的格式匯出資料或與需要文字輸入的其他程式相容非常有用。
NumPy 使用np.savetxt() 函式以指定的格式將陣列寫入文字檔案。它旨在處理包含數值資料的陣列,但可以透過格式化選項將其應用於各種用例。以下是語法:
numpy.savetxt(fname, data, fmt=<format>, delimiter=<delimiter>, header=<header>, footer=<footer>, comments=<char>)
其中,
- fname: 將資料儲存到的檔名或檔案物件。
- data: 要儲存的陣列。它可以是一維或多維陣列。
- fmt: 輸出的格式字串。定義如何格式化資料(例如,浮點精度)。
- delimiter: 檔案中分隔值用的字串或字元(例如,逗號用於 CSV,空格用於空格分隔)。
- header: 要寫入檔案開頭的字串。用於新增元資料或列名。
- footer: 要寫入檔案結尾的字串。可用於附加資訊。
- comments: 指示註釋開始的字串。預設為 #。
示例
在下面的示例中,我們使用 np.savetxt() 函式將一個二維 NumPy 陣列儲存到文字檔案中:
import numpy as np
# Create an array
array = np.array([[1, 2, 3], [4, 5, 6]])
# Save the array to a text file
np.savetxt('data.txt', array, fmt='%d', delimiter=',', header='Column1,Column2,Column3')
print ('File Saved succesfully!!')
獲得的輸出如下:
File Saved succesfully!!
將陣列儲存到二進位制檔案
在 NumPy 中將陣列儲存到二進位制檔案是將數值資料以緊湊格式儲存的一種方法。二進位制檔案通常用於儲存大型資料集或出於效能原因,因為與文字檔案相比,它們通常讀取和寫入速度更快。
NumPy 提供了np.save() 函式、np.savez() 函式和np.savez_compressed() 函式,專門用於以二進位制格式儲存陣列。
使用 np.save() 函式
np.save() 函式將單個 NumPy 陣列儲存到 NumPy 原生的.npy 格式的二進位制檔案中。此格式包含元資料,例如陣列的形狀和 dtype,允許以後載入和操作。以下是語法:
numpy.save(file, arr, allow_pickle=False, fix_imports=True)
其中,
- file: 將陣列儲存到的檔名或檔案物件。副檔名應為 .npy。
- arr: 要儲存的 NumPy 陣列。
- allow_pickle: 如果為 True,則允許儲存可以醃製的物件。預設為 False。
- fix_imports: 如果為 True,則嘗試修復載入醃製資料時的相容性問題(對於 Python 2 到 3)。
示例
在這個例子中,我們使用 np.save() 函式將一個二維 NumPy 陣列儲存到二進位制“.npy”檔案中,該函式有效地儲存陣列資料:
import numpy as np
# Create an array
array = np.array([[1, 2, 3], [4, 5, 6]])
# Save the array to a .npy file
np.save('array.npy', array)
print ("File saved!!")
這將產生以下結果:
File saved!!
使用 np.savez() 函式
np.savez() 函式將多個數組儲存到具有“.npz”副檔名的單個檔案中。“.npz”檔案是一個 zip 存檔,其中包含每個陣列的一個“.npy”檔案,可以透過名稱訪問這些檔案。以下是語法:
numpy.savez(file, *args, **kwargs)
其中,
- file: 將陣列儲存到的檔名或檔案物件。副檔名應為 .npz。
- *args: 要儲存的陣列。
- **kwargs: 指定每個陣列名稱的關鍵字引數。
示例
在下面的示例中,我們使用 np.savez() 函式將多個 NumPy 陣列儲存到壓縮的“.npz”檔案中,其中“array1”和“array2”分別儲存它們各自的名稱:
import numpy as np
# Create multiple arrays
array1 = np.array([1, 2, 3])
array2 = np.array([[4, 5, 6], [7, 8, 9]])
# Save the arrays to a .npz file
np.savez('arrays.npz', array1=array1, array2=array2)
print ("File saved!!")
以上程式碼的輸出如下:
File saved!!
使用 np.savez_compressed() 函式
np.savez_compressed() 函式與 np.savez() 函式類似,但它會壓縮陣列以減小檔案大小。這對於更有效地儲存大型資料集非常有用。以下是語法:
numpy.savez_compressed(file, *args, **kwargs)
其中,
- file: 將陣列儲存到的檔名或檔案物件。副檔名應為 .npz。
- *args: 要儲存的陣列。
- **kwargs: 指定每個陣列名稱的關鍵字引數。
示例
在這裡,我們使用 np.savez_compressed() 函式將多個 NumPy 陣列儲存到壓縮的“.npz”檔案中,該函式在儲存“array1”和“array2”及其各自名稱的同時減小了檔案大小:
import numpy as np
# Create multiple arrays
array1 = np.array([1, 2, 3])
array2 = np.array([[4, 5, 6], [7, 8, 9]])
# Save the arrays to a compressed .npz file
np.savez_compressed('arrays_compressed.npz', array1=array1, array2=array2)
print ("File saved!!")
獲得的輸出如下:
File saved!!