Python入門トップページ


目次

  1. NumPy とは
  2. Python リストの場合
  3. NumPy の使用例
    1. 1次元配列(ベクトル)
    2. 2次元配列(行列)
    3. 要素の取り出し
    4. ベクトルと行列の変換
    5. NumPy のデータ型
    6. NumPy 配列の作成と操作
    7. ユニバーサル関数と集約関数
    8. NumPy 配列のソート
    9. NumPy の構造化配列
    10. NumPy 配列の保存と読み込み
    11. 表示オプションの変更
  4. NumPy で線形代数
  5. NumPy の乱数生成

NumPy

NumPy の使用例

ベクトルと行列の変換

NumPy ではベクトルを行列に変換したり,行列を平らなベクトルに変換することもできます.

ベクトルを行列に
import numpy as np # プログラムの先頭でモジュールを読み込む
# ベクトルを行列に変換する
a = np.array([1, 2, 3, 4, 5, 6])
A = a.reshape(2, 3)
print(A)
[[1 2 3]
 [4 5 6]]
行列を平らに
# 行列を平らに変換
a = A.ravel()
print(a)
[1 2 3 4 5 6]

なお,行列を平らにするメソッドには flatten() もあります.ravel() では要素を共有するが,flatten() では要素をコピーして変換します.したがって,値を書き換えたときに動作が異なるのとともに,コピーを行わない ravel() の方が処理効率の面では効率的です.

flatten()で平らに
A = np.array([[1,2,3,4], [5,6,7,8]])
a = A.flatten() # コピーして変換
print(A)
print(a)
[[1 2 3 4]
 [5 6 7 8]]
[1 2 3 4 5 6 7 8]
要素を書き換える
A[0,1] = 10 # a には影響しない
a[6] = 20 # A には影響しない
print(A)
print(a)
[[ 1 10  3  4]
 [ 5  6  7  8]]
[ 1  2  3  4  5  6 20  8]

A = np.array([[1,2,3,4], [5,6,7,8]])
a = A.ravel() # 平らに
print(A)
print(a)
[[1 2 3 4]
 [5 6 7 8]]
[1 2 3 4 5 6 7 8]

A[0,1] = 10 # a にも影響する
a[6] = 20 # A にも影響する
print(A)
print(a)
[[ 1 10  3  4]
 [ 5  6 20  8]]
[ 1 10  3  4  5  6 20  8]

目次に戻る