【Python】NumPy配列(ndarray)の基本操作:生成・アクセス・型指定

NumPyの中心となるデータ構造 ndarray(N-dimensional array)は、Python標準のリストよりも高速でメモリ効率が良く、豊富な数学関数を備えています。

ご提示いただいたコードには、arange(連番生成)や linspace(等分割)、スライシング、型指定といった重要な要素が含まれています。これらを整理し、誤字(aragen, prntなど)を修正した実行可能なコードと解説を以下に示します。

目次

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

import numpy as np

def ndarray_operations():
    print("=== 1. ndarrayの生成 ===")
    
    # リストから生成
    x = np.array([1, 0, 1])
    print(f"From List: {x}")

    # 範囲指定で生成 (arange)
    # np.arange(開始, 終了, ステップ) -> 終了値は含まない
    x1 = np.arange(1, 10)
    print(f"arange(1, 10):    {x1}")
    
    x2 = np.arange(1, 10, 2)
    print(f"arange(step 2):   {x2}")

    # 要素数を指定して生成 (linspace)
    # np.linspace(開始, 終了, 要素数) -> 終了値を含む等間隔な値
    x_lin = np.linspace(1, 2, 5)
    print(f"linspace(1, 2, 5): {x_lin}")

    print("\n=== 2. データアクセスと変更 ===")
    
    x_acc = np.array([1, 2, 3, 4, 5])

    # インデックス指定
    print(f"Index 0:   {x_acc[0]}")
    
    # スライシング [開始:終了] -> 終了インデックスは含まない
    print(f"Slice 0:2: {x_acc[0:2]}")
    
    # 後ろからアクセス
    print(f"Index -1:  {x_acc[-1]}")

    # データの変更
    x_mod = np.array([1, 2, 3])
    print(f"Before: {x_mod}")
    x_mod[0] = 100
    print(f"After:  {x_mod}")

    print("\n=== 3. データ型 (dtype) ===")
    
    # 型の自動推定
    # 整数のみなら int32 または int64 になる
    x_int = np.array([1, 2, 3])
    print(f"Default: {x_int.dtype}")

    # 型の明示的指定
    # dtype=np.float64 で浮動小数点数として作成
    x_float = np.array([1, 2, 3], dtype=np.float64)
    print(f"Explicit: {x_float.dtype}")
    print(f"Values:   {x_float}") # 1. 2. 3. と表示される

if __name__ == "__main__":
    ndarray_operations()

解説:生成関数の使い分け

1. np.arange(start, stop, step)

Python標準の range() 関数のNumPy版です。

  • 特徴: 「データの間隔(ステップ)」を指定します。
  • 注意: stop の値は含まれません
  • 用途: 「1つ飛ばしで取得したい」「0.1刻みで取得したい」場合など。

2. np.linspace(start, stop, num)

Linear Space(線形空間)の略です。

  • 特徴: 「データの個数」を指定します。指定した区間を等間隔に分割します。
  • 注意: デフォルトでは stop の値を含みます
  • 用途: グラフ描画用のx軸データ作成など、「この範囲を滑らかに50分割したい」といった場合。

解説:データ型(dtype)

NumPyの配列は、Pythonのリストと異なり「すべての要素が同じデータ型」である必要があります。

  • int64 / int32: 整数。
  • float64 / float32: 浮動小数点数(小数)。float64(倍精度)が標準です。
  • 指定方法: dtype 引数を使用します。メモリ節約のためにあえて float32int8 を指定することもあります。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

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

目次