0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pythonでのデータ型、形状(シェイプ)

Posted at

データの形状(シェイプ)やデータ型に関連してPythonのpandasnumpyを使って、データの形状データ型を確認する方法について説明します。

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) で、データ型を確認します。ここでは、datapandas.DataFrame型であることがわかります。
  • data.shape でデータの形状を確認します。これにより、データが何行何列から成るかがわかります。

4. テスト点数の平均を計算

average_score = data['Test Scores'].mean()
print("クラスのテストの平均点:", average_score)

pandasmean()関数を使って、テスト点数の平均を計算しています。平均点を求めることで、全体のパフォーマンスを把握することができます。

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,)
0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?