NumPyによる配列の操作 | 配列操作 | Python本格超入門

スポンサーリンク
スポンサーリンク

NumPyによる配列の操作

NumPyは、Pythonで数値計算を行うための強力なライブラリで、特に多次元配列(numpy.ndarray)の操作に優れています。この章では、NumPyによる配列操作の基本的な方法を学びます。配列の生成、形状の変更、要素の抽出や操作方法を説明していきます。

NumPy配列の生成

NumPy配列(ndarray)は、リストやタプルから生成できます。また、ゼロや任意の値で埋められた配列を生成することも可能です。以下に、基本的な配列生成の例を示します。

import numpy as np

# リストから配列を生成
arr = np.array([1, 2, 3, 4, 5])

# ゼロで埋められた配列を生成
zeros_arr = np.zeros((2, 3))

# 任意の値で埋められた配列を生成
full_arr = np.full((3, 3), 7)

# 1から10までの範囲で等間隔な値を持つ配列を生成
linspace_arr = np.linspace(1, 10, 5)

# 結果を表示
print(arr)
print(zeros_arr)
print(full_arr)
print(linspace_arr)

コードの説明

  • np.array:リストやタプルからNumPy配列を生成します。
  • np.zeros:ゼロで埋められた配列を指定した形状で生成します。
  • np.full:任意の値で埋められた配列を指定した形状で生成します。
  • np.linspace:指定した範囲内で等間隔な値を持つ配列を生成します。

配列の形状操作

NumPy配列は、多次元の形状を持つことができます。配列の形状は、shapeプロパティを使って確認できます。また、reshapeメソッドを使うことで、配列の形状を変更できます。

import numpy as np

# 1次元配列
arr = np.array([1, 2, 3, 4, 5, 6])

# 配列の形状を変更(2行3列の配列に変換)
reshaped_arr = arr.reshape((2, 3))

# 結果を表示
print(reshaped_arr)

コードの説明

上記のコードでは、1次元配列を2行3列の2次元配列に変換しています。reshapeを使うことで、任意の形状に変換できますが、配列内の要素数が変わらない必要があります。

配列のスライシングとインデックス操作

NumPyでは、リスト同様に配列の一部をスライスして取り出すことができます。また、特定のインデックスの値にアクセスすることも簡単です。

import numpy as np

# 配列の生成
arr = np.array([10, 20, 30, 40, 50, 60])

# インデックス2からインデックス4までの値を取得
sliced_arr = arr[2:5]

# 結果を表示
print(sliced_arr)

# 2次元配列の特定の要素にアクセス
arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 行2, 列3の要素にアクセス
element = arr_2d[1, 2]

print(element)

コードの説明

  • arr[2:5]:配列のインデックス2からインデックス4までの値をスライスして取得します。
  • arr_2d[1, 2]:2次元配列の特定の位置(行2, 列3)にある要素にアクセスします。

配列の演算

NumPy配列は、要素ごとの演算をサポートしており、効率的な数値計算が可能です。配列同士の加算、減算、乗算、除算などの演算が簡単に行えます。

import numpy as np

# 配列の生成
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

# 配列同士の演算
add = arr1 + arr2
multiply = arr1 * arr2

# 結果を表示
print("足し算:", add)
print("掛け算:", multiply)

コードの説明

  • arr1 + arr2:2つの配列を要素ごとに足し合わせた結果を表示します。
  • arr1 * arr2:2つの配列を要素ごとに掛け合わせた結果を表示します。

まとめ

NumPyは配列操作において非常に強力な機能を提供しています。配列の生成、形状の変更、インデックスやスライスでの操作、さらには要素ごとの演算まで、さまざまな操作が簡単に行えます。これらの基本的な操作を理解することで、データサイエンスや数値計算において効率的にデータを処理することが可能になります。次のステップでは、NumPyの高度な操作やPandasとの連携を学んでいきましょう。