Python

NumPy基礎完全攻略チートシート

NumPyはPythonでの数値計算を効率的に行うためのライブラリです。このチートシートでは、NumPyの基本操作をカテゴリごとにまとめました。数値データの扱いから統計処理、行列演算まで、NumPyの基本操作を逆引きとして活用できるように紹介します。実際のコード例とその実行結果も交えつつ説明するので、ぜひ実際に手を動かして使い方を身につけてください。

NumPy完全攻略チートシートをまとめた資料をLINEにて無料配信しています→NumPy完全攻略チートシート

1. NumPyのインポート

NumPyを使用するには、まずライブラリをインポートします。

import numpy as np
Python

2. 配列の生成

リストから配列を作成

arr = np.array([1, 2, 3])

print("配列の生成結果:", arr)
Python

出力

配列の生成結果: [1 2 3]
Python

ゼロの配列を生成

zeros = np.zeros((3, 3))

print("ゼロの配列:", zeros)
Python

出力

ゼロの配列: [[0. 0. 0.]
        [0. 0. 0.]
        [0. 0. 0.]]
Python

1の配列を生成

ones = np.ones((2, 2))

print("1の配列:", ones)
Python

出力

1の配列: [[1. 1.]
         [1. 1.]]
Python

初期化されていない配列を生成

empty = np.empty((2, 3))

print("未初期化の配列:", empty)
Python

出力(内容はランダムです):

未初期化の配列: [[6.9522549e-310 6.9522549e-310 6.9522549e-310]
              [6.9522549e-310 6.9522549e-310 6.9522549e-310]]
Python

特定の値で埋めた配列を生成

full = np.full((2, 2), 7)

print("7で埋めた配列:", full)
Python

出力

7で埋めた配列: [[7 7]
           [7 7]]
Python

連続する数値の配列を生成

arr = np.arange(0, 10, 2)

print("連続する数値の配列:", arr)
Python

出力

連続する数値の配列: [0 2 4 6 8]
Python

指定区間を等間隔で分割した配列を生成

linspace = np.linspace(0, 1, 5)

print("等間隔の配列:", linspace)
Python

出力

等間隔の配列: [0.   0.25 0.5  0.75 1.  ]
Python

ランダム値を持つ配列を生成

random_arr = np.random.random((2, 2))

print("ランダム配列:", random_arr)
Python

出力(内容はランダムです):

ランダム配列: [[0.67826159 0.58224385]
        [0.30144834 0.14329821]]
Python

3. 配列の形状とデータ型

配列の形状を確認

arr = np.array([[1, 2, 3], [4, 5, 6]])

print("配列の形状:", arr.shape)
Python

出力

配列の形状: (2, 3)
Python

配列の要素数を確認

print("配列の要素数:", arr.size)
Python

出力

配列の要素数: 6
Python

配列の次元数を確認

print("配列の次元数:", arr.ndim)
Python

出力

配列の次元数: 2
Python

配列の形状を変更

reshaped = arr.reshape((3, 2))

print("形状変更後の配列:", reshaped)
Python

出力

形状変更後の配列: [[1 2]
                [3 4]
                [5 6]]
Python

データ型の確認

print("データ型:", arr.dtype)
Python

出力

データ型: int64
Python

データ型を変換

arr_float = arr.astype(float)

print("データ型変更後の配列:", arr_float)

print("変更後のデータ型:", arr_float.dtype)
Python

出力

データ型変更後の配列: [[1. 2. 3.]
                   [4. 5. 6.]]

変更後のデータ型: float64
Python

4. 配列の基本操作

各要素に2を加算

arr = np.array([1, 2, 3])

print("2を加算:", arr + 2)
Python

出力

2を加算: [3 4 5]
Python

各要素に3を掛け算

print("3を掛け算:", arr * 3)
Python

出力

3を掛け算: [3 6 9]
Python

各要素を2で割る

print("2で割る:", arr / 2)
Python

出力

2で割る: [0.5 1.  1.5]
Python

各要素を2乗

print("2乗:", arr ** 2)
Python

出力

2乗: [1 4 9]
Python

配列同士の足し算

arr1 = np.array([1, 2, 3])

arr2 = np.array([4, 5, 6])

print("配列同士の足し算:", arr1 + arr2)
Python

出力

配列同士の足し算: [5 7 9]
Python

配列同士の掛け算(要素ごと)

print("配列同士の掛け算:", arr1 * arr2)
Python

出力

配列同士の掛け算: [ 4 10 18]
Python

5. 数学的演算

合計の計算

arr = np.array([1, 2, 3, 4, 5])

print("合計の結果:", arr.sum())
Python

出力

合計の結果: 15
Python

平均の計算

print("平均の結果:", arr.mean())
Python

出力

平均の結果: 3.0
Python

標準偏差の計算

print("標準偏差の結果:", arr.std())
Python

出力

標準偏差の結果: 1.4142135623730951
Python

最小値の計算

print("最小値の結果:", arr.min())
Python

出力

最小値の結果: 1
Python

最大値の計算

print("最大値の結果:", arr.max())
Python

出力

最大値の結果: 5
Python

累積和の計算

print("累積和の結果:", arr.cumsum())
Python

出力

累積和の結果: [ 1  3  6 10 15]
Python

6. インデックスとスライス

最初の要素にアクセス

arr = np.array([10, 20, 30, 40, 50])

print("最初の要素:", arr[0])
Python

出力

最初の要素: 10
Python

最後の要素にアクセス

print("最後の要素:", arr[-1])
Python

出力

最後の要素: 50
Python

インデックス1から3までスライス

print("スライス (1から3まで):", arr[1:4])
Python

出力

スライス (1から3まで): [20 30 40]
Python

2つ飛ばしでスライス

print("2つ飛ばしのスライス:", arr[::2])
Python

出力

2つ飛ばしのスライス: [10 30 50]
Python


7. 条件フィルタリングとブールインデックス

特定の条件に基づいて要素を抽出

arr = np.array([1, 2, 3, 4, 5])

print("条件に基づく抽出 (2より大きい):", arr[arr > 2])
Python

出力

条件に基づく抽出 (2より大きい): [3 4 5]
Python

複数の条件を指定

print("複数条件 (2より大きく4以下):", arr[(arr > 2) & (arr <= 4)])
Python

出力

複数条件 (2より大きく4以下): [3 4]
Python

条件を満たす要素を変更

arr[arr > 3] = 0

print("条件に基づき要素を変更 (3より大きい要素を0に):", arr)
Python

出力

条件に基づき要素を変更 (3より大きい要素を0に): [1 2 3 0 0]
Python


8. 配列の結合と分割

配列を縦に結合

arr1 = np.array([[1, 2], [3, 4]])

arr2 = np.array([[5, 6], [7, 8]])

vstacked = np.vstack((arr1, arr2))

print("縦に結合:", vstacked)
Python

出力

縦に結合: [[1 2]
         [3 4]
         [5 6]
         [7 8]]
Python

配列を横に結合

hstacked = np.hstack((arr1, arr2))

print("横に結合:", hstacked)
Python

出力

横に結合: [[1 2 5 6]
          [3 4 7 8]]
Python

配列を特定の位置で分割

split_arr = np.split(arr1, 2)

print("分割された配列:", split_arr)
Python

出力

分割された配列: [array([[1, 2]]), array([[3, 4]])]
Python

9. 配列のソートと転置

昇順にソート

arr = np.array([5, 2, 3, 1, 4])

arr.sort()

print("昇順にソート:", arr)
Python

出力

昇順にソート: [1 2 3 4 5]
Python

行ごとにソート

arr = np.array([[3, 2, 1], [6, 5, 4]])

arr.sort(axis=1)

print("行ごとにソート:", arr)
Python

出力

行ごとにソート: [[1 2 3]
         [4 5 6]]
Python

配列の転置

arr = np.array([[1, 2, 3], [4, 5, 6]])

transposed = arr.T

print("転置:", transposed)
Python

出力

転置: [[1 4]
      [2 5]
      [3 6]]
Python


10. 配列のコピー

配列のコピーを作成

arr = np.array([1, 2, 3])

arr_copy = arr.copy()

arr_copy[0] = 100

print("元の配列:", arr)

print("コピー配列:", arr_copy)
Python

出力

元の配列: [1 2 3]

コピー配列: [100   2   3]
Python

参照によるコピー

arr_ref = arr

arr_ref[0] = 100

print("元の配列:", arr)

print("参照コピー配列:", arr_ref)
Python

出力

元の配列: [100   2   3]

参照コピー配列: [100   2   3]
Python

おわりに

今回はNumPyで使える実際のコード例とそのグラフ出力を交えつつ説明しました。ぜひ実際に手を動かして使い方を身につけてください。

NumPy完全攻略チートシートをまとめた資料をLINEにて無料配信しています→NumPy完全攻略チートシート