「os.path.join()」はPythonの標準ライブラリであるos
モジュールの関数です。ファイルパスを適切に結合するために使用されます。複数のパス要素を受け取り、それらを一つのパスとして結合します。この関数を使うことで、異なるオペレーティングシステム間でのパスの違いを気にせずにコードを書くことができます。
「pathlib.Path()」はPython 3.4で追加されたライブラリです。ot.pathモジュールに代わって使うものとして位置づけられています。pathlibでは、ファイルシステムのパス名を文字列としてではなく、Pathオブジェクトとして扱います。Path()でPathオブジェクトを作ってから、文字としての「/」ではなく、演算子の「/」としてパスを組み立てます。
サンプルコード
現在のディレクトリにファイルパスを作成
os.path.join()
import os
# 現在のディレクトリにファイルパスを作成
current_directory = "."
filename = "sparse_matrix.npz"
file_path = os.path.join(current_directory, filename)
print(file_path)
# 結果
# ./sparse_matrix.npz
利用シーン:kaggleのnotebookで現在のディレクトリ(/kaggle/working)に疎行列を保存
import numpy as np
from scipy.sparse import csr_matrix, save_npz, load_npz
# 非ゼロ要素の値
data = np.array([1, 2, 3, 4, 5])
# 各非ゼロ要素が存在する行のインデックス
row_indices = np.array([0, 0, 1, 2, 2])
# 各非ゼロ要素が存在する列のインデックス
col_indices = np.array([0, 2, 2, 0, 1])
# CSR形式の疎行列を作成
sparse_matrix = csr_matrix((data, (row_indices, col_indices)), shape=(3, 3))
# データ型の確認
print(f"type(sparse_matrix):{type(sparse_matrix)}")
# 作成した疎行列の表示
print("疎行列:\n", sparse_matrix.toarray())
# 保存ファイル名
filename = 'sparse_matrix.npz'
# save_npzを使って疎行列(Compressed Sparse Row)を保存
save_npz(os.path.join(current_directory, filename), sparse_matrix)
# save_npzで保存した疎行列をload_npzで読み込む
loaded_sparse_matrix = load_npz(filename)
# データ型の確認
print(f"type(loaded_sparse_matrix):{type(loaded_sparse_matrix)}")
# 読み込んだ疎行列の表示
print("読み込んだ疎行列:\n", loaded_sparse_matrix.toarray())
pathlib.Path()
import numpy as np
from scipy.sparse import csr_matrix, save_npz, load_npz
from pathlib import Path
# 非ゼロ要素の値
data = np.array([1, 2, 3, 4, 5])
# 各非ゼロ要素が存在する行のインデックス
row_indices = np.array([0, 0, 1, 2, 2])
# 各非ゼロ要素が存在する列のインデックス
col_indices = np.array([0, 2, 2, 0, 1])
# CSR形式の疎行列を作成
sparse_matrix = csr_matrix((data, (row_indices, col_indices)), shape=(3, 3))
# データ型の確認
print(f"type(sparse_matrix): {type(sparse_matrix)}")
# 作成した疎行列の表示
print("疎行列:\n", sparse_matrix.toarray())
# 保存ファイルのパスを作成
current_directory = Path(".")
filename = current_directory / 'sparse_matrix.npz'
# save_npzを使って疎行列(Compressed Sparse Row)を保存
save_npz(filename, sparse_matrix)
# save_npzで保存した疎行列をload_npzで読み込む
loaded_sparse_matrix = load_npz(filename)
# データ型の確認
print(f"type(loaded_sparse_matrix): {type(loaded_sparse_matrix)}")
# 読み込んだ疎行列の表示
print("読み込んだ疎行列:\n", loaded_sparse_matrix.toarray())
参照
[1]Bill Lubanovic著『入門 Python 3 第2版』(オライリー・ジャパン、ISBN978-4-87311-932-8)
コメント