NumPyはPythonでの数値計算を効率的に行うためのライブラリです。このチートシートでは、NumPyの基本操作をカテゴリごとにまとめました。数値データの扱いから統計処理、行列演算まで、NumPyの基本操作を逆引きとして活用できるように紹介します。実際のコード例とその実行結果も交えつつ説明するので、ぜひ実際に手を動かして使い方を身につけてください。
NumPy完全攻略チートシートをまとめた資料をLINEにて無料配信しています→NumPy完全攻略チートシート
Contents
1. NumPyのインポート
NumPyを使用するには、まずライブラリをインポートします。
import numpy as np
Python2. 配列の生成
リストから配列を作成
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.]]
Python1の配列を生成
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]]
Python3. 配列の形状とデータ型
配列の形状を確認
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
Python4. 配列の基本操作
各要素に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]
Python5. 数学的演算
合計の計算
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]
Python6. インデックスとスライス
最初の要素にアクセス
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]
Python2つ飛ばしでスライス
print("2つ飛ばしのスライス:", arr[::2])
Python出力:
2つ飛ばしのスライス: [10 30 50]
Python7. 条件フィルタリングとブールインデックス
特定の条件に基づいて要素を抽出
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]
Python8. 配列の結合と分割
配列を縦に結合
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]])]
Python9. 配列のソートと転置
昇順にソート
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]]
Python10. 配列のコピー
配列のコピーを作成
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完全攻略チートシート