Pythonでデータ分析や数値計算を行う際に、必ず登場するのが NumPy(ナムパイ) というライブラリです。
この記事では、「NumPyってなに?」「どうやってデータを扱えばいいの?」という初心者の方に向けて、NumPyの基本操作をステップごとに紹介していきます。
NumPy配列の作り方(基本)
① リストから配列を作成
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr)
結果
[1 2 3 4 5]
② 2次元配列(行列)
import numpy as np
matrix = np.array([[1, 2], [3, 4]])
print(matrix)
結果
[[1 2]
[3 4]]
データの操作(基本)
1. 配列の形を確認・変更
print(arr.shape) # 配列の形(要素数や行列サイズ)
print(arr.reshape(5, 1)) # 5行1列に変換
2. 要素の抽出(スライシング)
print(arr[0]) # 先頭の要素
print(arr[1:4]) # 2番目〜4番目
計算や統計処理
NumPyでは、ベクトル演算や統計処理がとても簡単です。
1. 四則演算(ベクトル計算)
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b)
print(a * b)
結果
[5 7 9]
[ 4 10 18]
2. 統計関数
print(np.mean(a)) # 平均
print(np.max(b)) # 最大値
print(np.min(b)) # 最小値
print(np.sum(b)) # 合計
条件に合うデータの抽出(フィルタ)
data = np.array([1, 2, 3, 4, 5])
filtered = data[data > 3]
print(filtered)
結果
[4 5]
応用:乱数の生成やゼロ初期化
zeros = np.zeros((2, 3)) # 2行3列の0行列
ones = np.ones((2, 2)) # 2行2列の1行列
rand = np.random.rand(3) # 0〜1のランダム数(3個)
NumPyが得意なこと
- 大量の数値データを高速に処理
- for文を使わずにまとめて計算(ベクトル化)
- データ分析や機械学習の前処理に最適
- 他のライブラリ(pandas, scikit-learn, TensorFlow)の基盤にもなっている
まとめ
機能 | 使い方例 |
---|---|
配列作成 | np.array([1,2,3]) |
形状確認 | arr.shape |
切り出し | arr[1:3] |
ベクトル演算 | arr1 + arr2 |
統計処理 | np.mean(arr) |
条件抽出 | arr[arr > 3] |