データの形状(シェイプ)やデータ型に関連してPythonのpandas
とnumpy
を使って、データの形状やデータ型を確認する方法について説明します。
1. データの形状(シェイプ)とは?
データの形状(シェイプ)とは、配列やデータフレームの次元ごとの要素数を示します。例えば、2次元のデータであれば、行数と列数が形状として表現するようになります。
2. クラスのテストの平均点を使ってデータの形状と型を確認する
クラスのテスト点数のデータを使って、データ型や形状を確認する方法を紹介します。以下のコードを実行します。
import numpy as np
import pandas as pd
# クラスのテスト点数データを仮定
np.random.seed(0) # シードを設定
test_scores = np.random.randint(50, 100, size=10) # 50〜100の範囲でランダムな点数(10人分)
# データフレームの作成
data = pd.DataFrame({'Test Scores': test_scores})
# データ型の確認
print("データ型:", type(data)) # pandas DataFrame の型
# データフレームの形状の確認
print("データの形状:", data.shape) # (行数, 列数)
# テスト点数の平均を計算
average_score = data['Test Scores'].mean()
print("クラスのテストの平均点:", average_score)
# 各点数が平均点からどれくらい離れているかを計算(偏差)
data['Deviation from Average'] = data['Test Scores'] - average_score
print("\nデータフレームに偏差を追加:\n", data)
# 1次元配列としての操作
test_scores_array = data['Test Scores'].values # Test Scores列を1次元配列として取得
print("\nTest Scores の1次元配列:\n", test_scores_array)
# 配列の形状の確認
print("Test Scores 配列の形状:", test_scores_array.shape)
3. コードの解説
1. ランダムなテスト点数の生成
test_scores = np.random.randint(50, 100, size=10)
この行では、50〜100の範囲でランダムに10人分のテスト点数を生成しています。np.random.randint()
を使って整数のランダムな配列を作成します。
2. pandas
データフレームの作成
data = pd.DataFrame({'Test Scores': test_scores})
ここでは、pandas
ライブラリを使って、ランダムに生成したテスト点数をデータフレームに格納しています。このデータフレームは、テスト点数を持つ1列のデータとして、後で操作することができます。
3. データ型と形状の確認
print("データ型:", type(data)) # pandas DataFrame の型
print("データの形状:", data.shape) # (行数, 列数)
-
type(data)
で、データ型を確認します。ここでは、data
がpandas.DataFrame
型であることがわかります。 -
data.shape
でデータの形状を確認します。これにより、データが何行何列から成るかがわかります。
4. テスト点数の平均を計算
average_score = data['Test Scores'].mean()
print("クラスのテストの平均点:", average_score)
pandas
のmean()
関数を使って、テスト点数の平均を計算しています。平均点を求めることで、全体のパフォーマンスを把握することができます。
5. 偏差(平均点との差)の計算
data['Deviation from Average'] = data['Test Scores'] - average_score
ここでは、各テスト点数から平均点を引いた偏差を計算し、新しい列としてデータフレームに追加しています。これにより、各学生が平均点からどれくらい外れているかを確認できます。
6. 1次元配列としての操作
test_scores_array = data['Test Scores'].values
print("\nTest Scores の1次元配列:\n", test_scores_array)
pandas
のデータフレームから、特定の列(ここではTest Scores
)を1次元配列として取得しています。このように、データフレームの列はNumPyの配列としても操作できます。
7. 配列の形状の確認
print("Test Scores 配列の形状:", test_scores_array.shape)
配列の形状を確認することで、データの次元(行数、列数)を把握することができます。
4. 出力例
実行結果は以下のようになります。
データ型: <class 'pandas.core.frame.DataFrame'>
データの形状: (10, 1)
クラスのテストの平均点: 72.4
データフレームに偏差を追加:
Test Scores Deviation from Average
0 54 -18.4
1 78 5.6
2 60 -12.4
3 87 14.6
4 71 -1.4
5 92 19.6
6 88 15.6
7 88 15.6
8 83 10.6
9 65 -7.4
Test Scores の1次元配列:
[54 78 60 87 71 92 88 88 83 65]
Test Scores 配列の形状: (10,)