numpyの構造とサンプルN行を出力
NumPyのバイナリファイル(.npy / .npz)のデータ構造(メタデータ)とサンプルのN行を、変数指定したパスから読み込んで確認するためのPythonコードです。
.npyの場合
単一のNumPy配列が保存されている「.npy」ファイルを読み込み、データの型や形状の確認と、先頭からN行のサンプリングを行います。
import numpy as np
#==========================================
#設定(パスと取得したい行数)
#==========================================
file_path = "path/to/your/file.npy" # 対象ファイルのパスを指定
N = 5 # 確認したいサンプル行数
try:
# データの読み込み
data = np.load(file_path)
# 1. 構造(メタデータ)の確認
print("========== ファイル構造 (Meta Data) ==========")
print(f"ファイルパス : {file_path}")
print(f"データ型 (dtype) : {data.dtype}")
print(f"配列の形状 (shape) : {data.shape}")
print(f"次元数 (ndim) : {data.ndim}")
# 2. サンプルデータの取得
print(f"\n========== サンプルデータ (先頭 {N} 行) ==========")
if data.ndim >= 2:
# 2次元以上の場合は先頭からN行を取得
sample_data = data[:N]
print(sample_data)
else:
# 1次元配列の場合は先頭からN要素を取得
sample_data = data[:N]
print(f"※1次元配列のため、先頭 {N} 要素を表示します:")
print(sample_data)except FileNotFoundError:
print(f"エラー: 指定されたファイルが見つかりません: {file_path}")
except Exception as e:
print(f"エラーが発生しました: {e}")
.npzの場合
複数の配列がキーワード付きで圧縮保存されている「.npz」ファイルを読み込み、格納されている配列の一覧(Key)ごとに構造とサンプルを確認します。
import numpy as np
#==========================================
#設定(パスと取得したい行数)
#==========================================
file_path = "path/to/your/file.npz" # 対象ファイルのパスを指定
N = 3 # 確認したいサンプル行数
try:
# .npzファイルの読み込み
with np.load(file_path) as zip_data:
# 含まれている配列のキー一覧
keys = zip_data.files
print("========== .npz ファイル構造 ==========")
print(f"ファイルパス : {file_path}")
print(f"格納されている配列の一覧 (Keys): {keys}\n")
# 各配列のメタデータとサンプルをループで確認
for key in keys:
data = zip_data[key]
print(f"--- [Key: {key}] の情報 ---")
print(f"データ型 (dtype) : {data.dtype}")
print(f"配列の形状 (shape) : {data.shape}")
# 先頭N行(またはN要素)のプレビュー
sample = data[:N]
print(f"サンプル (先頭 {N} 行/要素):")
print(sample)
print("-" * 40)except FileNotFoundError:
print(f"エラー: 指定されたファイルが見つかりません: {file_path}")
except Exception as e:
print(f"エラーが発生しました: {e}")
ファイルサイズが数GBを超えるような非常に大きいデータである場合、メモリ不足を防ぐために特殊な読み込みオプション(mmap_mode)を追記した方が安全

