NumPyを活用して効率的なデータ処理

データサイエンス

はじめに

データサイエンスの世界では、膨大なデータを効率よく扱うためのツールが欠かせません。
その中でも、Pythonライブラリの「NumPy(ナンパイ)」は、データ処理の基礎を支える重要な存在です。
本記事では、NumPyの基本から応用までをわかりやすく解説し、データサイエンスにどう活かせるかをご紹介します。

NumPyとは?

NumPy(Numerical Python)はPythonで数値計算を行うためのライブラリで、以下のような特徴があります。

  • 高速な多次元配列(ndarray)を扱える
  • ベクトル・行列演算が簡単にできる
  • 統計処理や線形代数などの関数が豊富
  • 他のライブラリ(Pandas, Scikit-learn, TensorFlowなど)と連携しやすい

NumPyの基本操作

まずはNumPyの基本的な使い方です。

import numpy as np
# 配列の作成
a = np.array([1, 2, 3])
b = np.array([[1, 2], [3, 4]])

# 配列の演算
c = a * 2
# c = [2, 4, 6]

d = b + 3
# d = [[4, 5], [6, 7]]

# 統計処理
mean = np.mean(a)
# mean(平均値) 2.0
std = np.std(b)
# std(標準偏差) 1.118033988749895

NumPyの配列はPythonのリストよりも高速かつメモリ効率が良いため、大量のデータを扱う際に非常に便利です。

データサイエンスでの活用例

1. データの前処理

NumPyは欠損値の処理、正規化、標準化などの前処理に活用できます。

# 標準化
data = np.array([10, 20, 30])
standardized = (data - np.mean(data)) / np.std(data)
# standardized : [-1.22474487, 0.0, 1.22474487]

※データの標準化とは、データの平均を0、標準偏差を1に変換することで、異なるスケールのデータであっても同じ基準で取り扱えるようにすることです!

2. ベクトル化による高速処理

ループを使わずにベクトル演算を行うことで、処理速度を大幅に向上させられます。

# ループなしで10万件の数列に対して要素ごとの計算
x = np.arange(100000)
y = x * 2

3. 線形代数の応用

NumPyは行列の積、逆行列、固有値などの計算も簡単に行えます。

A = np.array([[1, 2], [3, 4]])
# 逆行列
inv_A = np.linalg.inv(A)   # inv_A(逆行列) [[-2, 1], [ 1.5, -0.5]]

# 固有値
eigvals, eigvecs = np.linalg.eig(A)
# eigvals(固有値) [-0.37228132, 5.37228132]
# eigvecs(固有ベクトル) [[-0.82456484,-0.41597356], [0.56576746, -0.90937671]]

他ライブラリとの連携

NumPyはpandasと組み合わせて使うことで、表形式のデータ処理がより柔軟になります。
また、機械学習ライブラリ(scikit-learnやTensorFlow)でも内部的にNumPy配列が使われているため、基礎を理解しておくと応用が効きます。

まとめ

NumPyはデータサイエンスの基礎を支える強力なライブラリです。
配列操作や統計処理、線形代数など、あらゆる場面で活躍します。
これからデータサイエンスを学ぶ方は、まずNumPyをしっかり使いこなせるようになりましょう!

タイトルとURLをコピーしました