【Python】NumPy入門:インストールから多次元配列(ndarray)の作成まで

科学技術計算や機械学習、Webデータ分析などの分野では、大量の数値データを高速に処理する必要があります。Python標準のリスト型では処理速度や記述の面で限界があるため、NumPy(ナンパイ) というライブラリが事実上の標準として使われます。

ここでは、NumPyの導入方法と、その核となる「多次元配列(ndarray)」の基本的な作り方を解説します。

目次

1. インストールとインポート

NumPyは外部ライブラリのため、インストールが必要です。 慣例として np という別名を付けてインポートします。

インストール

pip install numpy

インポート

import numpy as np

2. NumPy配列(ndarray)の作成

NumPyでは np.array() 関数を使って、Pythonのリストから配列を作成します。 ユーザーの例にあるような「リストのリスト」を渡すと、自動的に「2次元配列(行列)」として認識されます。

実行可能なサンプルコード

import numpy as np

def numpy_basics_demo():
    print("=== NumPy Array Creation ===")

    # 1. 2次元配列の作成(ユーザー提示の例)
    # リストの入れ子構造を渡します
    source_list = [
        [11, 12, 13],
        [21, 22, 23],
        [31, 32, 33]
    ]
    
    # np.array() で ndarray オブジェクトに変換
    x = np.array(source_list)

    print(f"x:\n{x}")
    
    # 2. 配列の重要属性(プロパティ)を確認
    # データ分析では、まずこれらの情報を確認するのが基本です
    print("\n[Array Attributes]")
    print(f"Type:  {type(x)}")      # <class 'numpy.ndarray'>
    print(f"Rank (ndim): {x.ndim}") # 次元の数(今回は2)
    print(f"Shape: {x.shape}")      # 各次元の要素数(3行3列なので (3, 3))
    print(f"Size:  {x.size}")       # 全要素数(9)
    print(f"Dtype: {x.dtype}")      # データ型(例: int64)

    # 3. NumPyならではの機能:要素への一括アクセス
    # Pythonのリストではループが必要な処理も、NumPyなら一行で書けます
    print("\n[Operations]")
    
    # スライシング: [行範囲, 列範囲]
    # 例: 全行の、インデックス1(2列目)を取得
    col_2 = x[:, 1]
    print(f"2nd column: {col_2}") # [12 22 32]
    
    # ブロードキャスト計算
    # 全要素に 100 を足す(ループ不要)
    x_plus = x + 100
    print(f"x + 100:\n{x_plus}")

if __name__ == "__main__":
    numpy_basics_demo()

解説:Pythonリストとの違い

np.array は単なるリストではありません。最大の違いは 「メモリ効率」「ベクトル演算」 です。

  • 型が固定される: リストは数値や文字列を混在できますが、NumPy配列は「すべての要素が同じ型(intfloat など)」である必要があります。これにより高速な計算が可能になります。
  • 要素ごとの計算:
    • リスト: [1, 2] * 2[1, 2, 1, 2] (連結される)
    • NumPy: np.array([1, 2]) * 2[2, 4] (各要素が計算される)

データ分析では、この性質を利用して行列計算を行います。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次