ITエンジニア ノイのブログ

ITエンジニアのノイです。 YouTubeで ITエンジニアのお勉強という学習用の動画を公開しています。チャンネル登録お願いします!https://m.youtube.com/channel/UCBKfJIMVWXd3ReG_FDh31Aw/playlists

Compressed Sparse Row(CSR)

csr_matrix

csr_matrixは、Compressed Sparse Row(CSR)形式の疎行列を表すために使用される特殊なデータ型です。

疎行列とは、ほとんどの要素がゼロである行列を指します。CSR形式は、疎行列を効率的に表現するための方法の一つであり、メモリ使用量を削減することができます。

SciPyのcsr_matrix型は、行指標、列指標、および非ゼロの要素値を格納するデータ構造を使用して、疎行列を効率的に表現します。この型は主に行列演算や数値計算において疎行列を操作するために使用されます。

csr_matrix型の操作例

import scipy.sparse as sp

# 疎行列を作成する
data = [1, 2, 3, 4, 5, 6]
row = [0, 0, 1, 2, 2, 3]
col = [0, 2, 2, 0, 1, 3]
matrix = sp.csr_matrix((data, (row, col)), shape=(4, 4))

# 疎行列の基本的な操作
print(matrix.shape)        # 行列の形状を表示する
print(matrix.nnz)          # 非ゼロ要素の数を表示する
print(matrix.data)         # 非ゼロ要素の値を表示する
print(matrix.indices)      # 列インデックスを表示する
print(matrix.indptr)       # 行ポインタを表示する
print(matrix.toarray())    # 密行列に変換する

# 疎行列の演算
other_matrix = sp.eye(4)  # 密行列を作成
result = matrix.dot(other_matrix)  # 疎行列と密行列の乗算
print(result.toarray())

上記の例では、csr_matrixを作成し、行列の形状、非ゼロ要素の数、データ、インデックスなどを表示し、密行列への変換と行列の乗算を行っています。

youtu.be