
【python】NumPy, Pandas入門 おすすめ度: ★★★★★
Pythonを使ったデータ分析の基礎となるライブラリがNumPyとPandasです。これらはデータの操作や分析に必要な機能を提供し、大規模なデータセットの処理を非常に効率的に行うことができます。この記事では、NumPyとPandasの基本的な使い方を学び、データ分析を始めるための基礎を固めていきましょう。
1. NumPyとは?
NumPy(Numerical Python)は、Pythonの標準的なリストに比べて効率的な多次元配列(ndarray)を提供し、数値演算や科学計算を高速に行えるライブラリです。
1.1 NumPyの基本
まずはNumPyをインポートして、基本的な配列操作を学びます。
import numpy as np
配列の作成
NumPyでは、array関数を使ってPythonのリストから配列を作成できます。
# リストから配列を作成
arr = np.array([1, 2, 3, 4, 5])
print(arr)
# 出力: [1 2 3 4 5]
配列の基本演算
NumPyの配列では、要素ごとの演算が簡単に行えます。
parr = np.array([1, 2, 3, 4, 5])
print(arr * 2) # 出力: [ 2 4 6 8 10]
print(arr + 5) # 出力: [ 6 7 8 9 10]
多次元配列
NumPyは1次元配列だけでなく、多次元配列も簡単に扱えます。
# 2次元配列の作成
matrix = np.array([[1, 2, 3], [4, 5, 6]])
print(matrix)
# 出力:
# [[1 2 3]
# [4 5 6]]
配列の形状操作
NumPyでは、配列の形状を変更することも可能です。
# 配列の形状を変更(2行3列の行列に変換)
arr = np.array([1, 2, 3, 4, 5, 6])
reshaped_arr = arr.reshape((2, 3))
print(reshaped_arr)
# 出力:
# [[1 2 3]
# [4 5 6]]
配列の統計的演算
NumPyには、配列に対する統計的な演算を簡単に行うためのメソッドが用意されています。
arr = np.array([1, 2, 3, 4, 5])
print(np.mean(arr)) # 平均: 3.0
print(np.sum(arr)) # 合計: 15
print(np.max(arr)) # 最大値: 5
1.2 NumPyの活用例
NumPyは、大規模な数値データの操作に強力です。科学計算や画像処理、シミュレーションなど、様々な分野で活用されています。
2. Pandasとは?
Pandasは、データの操作や分析に特化したライブラリです。特に、テーブル形式のデータ(表データ)を扱うのに便利です。Pandasは2つの主要なデータ構造を提供します:
Series: 一次元のラベル付きデータ
DataFrame: 二次元の表形式データ(行と列を持つ)
2.1 Pandasの基本
Pandasを使い始めるには、まずライブラリをインポートします。
import pandas as pd
Seriesの作成
Seriesは、インデックス付きの一次元データです。
# Seriesの作成
s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
print(s)
# 出力:
# a 1
# b 2
# c 3
# d 4
# e 5
# dtype: int64
DataFrameの作成
DataFrameは、行と列を持つ二次元データです。
# DataFrameの作成
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
print(df)
# 出力:
# Name Age City
# 0 Alice 25 New York
# 1 Bob 30 Los Angeles
# 2 Charlie 35 Chicago
データの読み込みと書き出し
Pandasでは、CSVやExcelなどのファイル形式からデータを簡単に読み込んだり、保存したりできます。
# CSVファイルの読み込み
df = pd.read_csv('data.csv')
# CSVファイルの書き出し
df.to_csv('output.csv', index=False)
2.2 Pandasの基本操作
Pandasでは、データの操作や加工が非常に簡単に行えます。
データの参照
行や列を参照する際には、iloc(インデックスで参照)やloc(ラベルで参照)を使います。
# 特定の列を参照
print(df['Name'])
# 特定の行を参照
print(df.iloc[0]) # インデックスで参照
print(df.loc[0]) # ラベルで参照
データのフィルタリング
条件に基づいてデータをフィルタリングすることも簡単です。
# Ageが30以上の行をフィルタリング
filtered_df = df[df['Age'] >= 30]
print(filtered_df)
データの統計的演算
Pandasでは、DataFrame全体や特定の列に対して統計的な計算を行うことができます。
# 統計情報の取得
print(df.describe())
# 特定の列の平均値を計算
print(df['Age'].mean()) # 出力: 30.0
3. NumPyとPandasの組み合わせ
NumPyとPandasは一緒に使うことが多く、Pandasの内部ではNumPyのデータ構造が使われていることもあります。これにより、数値データの効率的な操作と、大規模データセットの可視化や分析が可能になります。
例: NumPyで作成したデータをPandasのDataFrameに変換
# NumPyで配列を作成
data = np.random.randn(5, 3)
# Pandas DataFrameに変換
df = pd.DataFrame(data, columns=['A', 'B', 'C'])
print(df)
このように、NumPyの数値演算機能とPandasのデータ操作機能を組み合わせることで、より高度なデータ分析や処理が簡単に行えます。
まとめ
NumPyとPandasは、Pythonを使ったデータ分析において非常に重要なライブラリです。NumPyは多次元配列と高速な数値演算を提供し、Pandasはテーブル形式のデータを扱うための強力なツールを提供します。これらを組み合わせることで、大規模なデータセットを効率的に処理・分析することが可能になります。
まずはNumPyとPandasの基本を押さえて、実際のデータを操作することで理解を深めていきましょう。
4o