NumPy:中級編

NumPyの中級編へようこそ!この記事では、NumPyのさまざまな高度な機能やテクニックについて詳しく解説します。

  1. ブロードキャスト ブロードキャストは、異なる形状の配列間での演算を効率的に行うための強力な機能です。NumPyのブロードキャストを使用すると、配列の形状を自動的に調整して演算を行うことができます。以下は、ブロードキャストの例です。
import numpy as np

# 配列のブロードキャスト
a = np.array([1, 2, 3])
b = np.array([10, 20, 30])
c = a * b
print(c)  # 出力: [10, 40, 90]

# スカラー値とのブロードキャスト
a = np.array([1, 2, 3])
b = 10
c = a * b
print(c)  # 出力: [10, 20, 30]
  1. インデックスとスライシング NumPyでは、配列の要素にアクセスするための便利なインデックスとスライシングの機能が提供されています。以下は、インデックスとスライシングの例です。
import numpy as np

# インデックス
a = np.array([1, 2, 3, 4, 5])
print(a[0])     # 出力: 1
print(a[2])     # 出力: 3

# スライシング
b = np.array([1, 2, 3, 4, 5])
print(b[1:4])   # 出力: [2, 3, 4]
print(b[:3])    # 出力: [1, 2, 3]
print(b[3:])    # 出力: [4, 5]
  1. 行列の演算 NumPyは、行列の演算にも優れた機能を提供しています。行列の乗算や転置、逆行列の計算など、さまざまな演算を簡単に行うことができます。以下は、行列の演算の例です。
import numpy as np

# 行列の乗算
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
c = np.dot(a, b)
print(c)  # 出力: [[19, 22], [43, 50]]

# 行列の転置
d = np.transpose(a)
print(d)  # 出力: [[1, 3], [2, 4]]

# 逆行列の計算
e = np.linalg.inv(a)
print(e)  # 出力: [[-2, 1], [1.5, -0.5]]
  1. ユニバーサル関数 NumPyのユニバーサル関数は、配列の要素ごとに演算を行うための関数です。ユニバーサル関数を使用すると、ループを使わずに高速な演算を実行することができます。以下は、ユニバーサル関数の例です。
import numpy as np

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

# 平方根を計算
b = np.sqrt(a)
print(b)  # 出力: [1, 1.41421356, 1.73205081, 2, 2.23606798]

# 自然対数を計算
c = np.log(a)
print(c)  # 出力: [0, 0.69314718, 1.09861229, 1.38629436, 1.60943791]

以上で、NumPyの中級ガイドは終了です。これらの機能とテクニックを使うことで、より高度な数値計算やデータ処理を効率的に行うことができます。NumPyの公式ドキュメントやさまざまなリソースを活用して、さらに深く学んでみてください。楽しんでプログラミングを続けてください!