文書の過去の版を表示しています。
Python モジュール: numpy
概要
- Python で行列を扱うためのモジュール
使い方
モジュールの読み込み
import numpy
あるいは
import numpy as np
as np
によって、以降np
で呼び出せる。- ここではこっちの読み込みをした場合で記述していく。
行列の作成
- numpy 用の行列データ
matrix
を作成する方法- リストを numpy 用の行列に変換する場合
matrix = np.array(list_matrix)
list_matrix
: リストで作成した行列
- ゼロ行列を作成する場合
matrix = np.zeros([row,col])
row
: 行のサイズ (0
を指定することで空の行列を作ることができる)col
: 列のサイズ
行列の結合
- 縦に結合 (行を追加)
matrix = np.vstack((matrix1, matrix2))
matrix1
,matrix2
: 結合する行列データ- 結合する行列データは何個でも指定できる。
- タプルで指定するため、
vstack
の後は関数用とタプル用の括弧で二重になる。
- 横に結合 (列を追加)
matrix = np.hstack((matrix1, matrix2))
matrix1
,matrix2
: 結合する行列データ- 結合する行列データは何個でも指定できる。
- タプルで指定するため、
vstack
の後は関数用とタプル用の括弧で二重になる。
行列の抽出
- 特定の要素を抽出
value = matrix[row][col]
value
: 抽出した要素を格納する変数row
: 抽出したい行 (リストと同じく、0 から始まるインデックスを指定)col
: 抽出したい列 (リストと同じく、0 から始まるインデックスを指定)
- 特定の要素をスライスで抽出
new_matrix = matrix[row_slice][col_slice]
new_matrix
: 抽出した行列を格納する変数row_slice
: 抽出する行を指定するスライスcol_slice
: 抽出する列を指定するスライス- リストと同じく、スライス (例:
[2:5]
) で範囲で抽出することができる。
- 不連続な範囲を抽出
new_matrix = matrix[np.array(row_list),np.array(col_list)]
new_matrix
: 抽出した行列を格納する変数row_list
: 抽出したい行のリストcol_list
: 抽出したい列のリスト- 不連続な範囲 (例:
2,5,8,10
など) を抽出する場合は、行列データに行列データのインデックスを与える。ここでは、np.array()
を使っているが、行列データを指定するのであれば、np.array()
を使う必要はない。
ランダムな行列の作成
- テスト用などに使えるかも。
- 小数の行列 (0〜1 まで)
matrix = np.random.rand(SHAPE)
SHAPE
: 行列のサイズ (多次元にする場合はタプルで指定する)
- 整数の行列
matrix = np.random.randint([LOW,] HIGH, size = SHAPE)
LOW
: 最小値 (オプション)HIGH
: 最大値 (指定した値は含まない)SHAPE
: 行列のサイズ (多次元にする場合はタプルで指定する)