NumPy 入門: 配列操作と基本機能(配列マスター)

NumPy は Python数値計算を劇的に高速化するために開発されたライブラリです。この記事では、NumPy の基本的な配列操作や機能について説明します。配列の属性やアクセス方法、基本操作などを学んでいきましょう。

目次

  1. NumPy 入門: 配列の各種属性
  2. NumPy 入門: 配列の要素アクセス方法
  3. NumPy 入門: 配列の基本操作
  4. NumPy 入門: 配列のリシェイプ(形状変更)
  5. NumPy 入門: 配列の結合
  6. NumPy 入門: 配列の分割
  7. NumPy 入門: 配列の転置

NumPy 入門: 配列の各種属性

NumPy 配列には、次のような属性があります。

  • shape: 配列の形状を表すタプル
  • ndim: 配列の次元数
  • size: 配列の要素数
  • dtype: 配列のデータ型
import numpy as np

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

print("Shape:", arr.shape) #=> (2, 3)
print("Ndims:", arr.ndim)  #=> 2
print("Size:", arr.size)   #=> 6
print("Dtype:", arr.dtype) #=> int64

NumPy 入門: 配列の要素アクセス方法

配列の要素にアクセスする方法は次の通りです。

  • インデックス: arr[i]
  • スライス: arr[i:j:k]
arr = np.array([1, 2, 3, 4, 5])

print(arr[0])      #=> 1
print(arr[-1])     #=> 5
print(arr[1:3])    #=> [2 3]
print(arr[::2])    #=> [1 3 5]

NumPy 入門: 配列の基本操作

  • 要素ごとの演算: arr1 + arr2, arr1 * arr2 など
  • ブロードキャスト: 形状が異なる配列で要素ごとの演算が可能
  • 集約関数: sum, mean, min, max など
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

print(arr1 + arr2)     #=> [5 7 9]
print(arr1 * arr2)     #=> [ 4 10 18]

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

print(arr1 + arr3)     #=> [[2 4 6]]
                        #   [5 7 9]]

print(np.sum(arr3))    #=> 21
print(np.mean(arr3))   #=> 3.5

NumPy 入門: 配列のリシェイプ(形状変更)

reshape 関数を使って、配列の形状を変更できます。

arr = np.array(range(1, 10))

reshaped_arr = arr.reshape(3, 3)

print(reshaped_arr)
# [[1 2 3]
#  [4 5 6]
#  [7 8 9]]

NumPy 入門: 配列の結合

  • np.vstack: 縦に配列を結合
  • np.hstack: 横に配列を結合
arr1 = np.array([
  [1, 2],
  [3, 4],
])

arr2 = np.array([
  [5, 6],
])

print(np.vstack([arr1, arr2]))
# [[1 2]
#  [3 4]
#  [5 6]]

arr3 = np.array([
  [7],
  [8],
])

print(np.hstack([arr1, arr3]))
# [[1 2 7]
#  [3 4 8]]

NumPy 入門: 配列の分割

  • np.vsplit: 縦に配列を分割
  • np.hsplit: 横に配列を分割
arr = np.array([
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9],
])

arr_vsplit = np.vsplit(arr, 3)
print(arr_vsplit) #=> [array([[1, 2, 3]]), array([[4, 5, 6]]), array([[7, 8, 9]])]

arr_hsplit = np.hsplit(arr, 3)
print(arr_hsplit) #=> [array([[1],[4],[7]]), array([[2],[5],[8]]), array([[3],[6],[9]])]

NumPy 入門: 配列の転置

transpose 関数を使って、配列を転置できます。

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

transpose_arr = np.transpose(arr)

print(transpose_arr)
# [[1 4]
#  [2 5]
#  [3 6]]

この記事では、NumPy の基本的な配列操作や機能について学習しました。NumPy を十分に理解し、効果的なデータ処理や数値計算を行うために、さらに学習や実践を重ねましょう。