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?

More than 1 year has passed since last update.

Pythonをはじめてみるメモ

Last updated at Posted at 2023-02-16

必要に迫られて、数年ぶりのPythonにチャレンジ。
自分用のメモです。

環境構築

PythonじゃなくてAnacondaをインストールするんだった。
ここからダウンロード↓↓↓
https://www.anaconda.com/products/distribution

教科書

前に買ってたこれに沿ってはじめてみる。
https://www.shoeisha.co.jp/book/detail/9784798155067

パッケージの読み込み

基本のパッケージ

import numpy as np
import pandas as pd

使いそうなコマンドメモ

配列の作成は np.array サイズを確認するときは 配列名.shape

sample_array_2 = np.array(
    [[1,2,3,4,5],[6,7,8,9,10]])
sample_array_2.shape

データの読み込み pd.read_csv("ファイル名") pd.read_clipboard()

file_data = pd.read_csv("data(0-49).csv")

file_data = pd.read_clipboard()

データフレームのサイズも .shape で確認できる。

file_data.shape

列名の取得 .columns

columnname = file_data.columns

列名を確認して、4番から28番までのデータを別データフレームに入れる
※行番号、列番号は0からはじまる

data = file_data.iloc[:,4:28]

全体に欠損値がひとつでも含まれているか確認

print(data.isnull().values.sum() != 0)

行ごとに欠損値をひとつでも含むか判定

print(data.isnull().any(axis=1))

printで配列を省略せずに表示する

pd.set_option('display.max_rows', 最大表示列数)
pd.set_option('display.max_columns', 最大表示行数)

クラスター分析(k-means)

# ライブラリのインポート
from sklearn.cluster import KMeans

clu = KMeans(n_clusters=4) # クラスター数を指定

# dataにクラスタ分析をしてclass列に分類結果を格納
data["class"] = clu.fit_predict(data) 

# 各クラスタのサンプル数を確認
print(data["class"].value_counts())

# 各クラスタの平均点(クラスタ中心)を出力
print(data.groupby("class").mean()

# クラスタ中心の各項目の差を求める
clu_maxmin = clu_center.max(axis=0)-clu_center.min(axis=0)

# クラスタ中心と同じ配列に入れる
a = clu_center.T
a["maxmin"] = clu_maxmin  # colum名を"maxmin"として配列aに追加する

# maxmin の値が大きい順に並べ替える
a.sort_values("maxmin", ascending=False)

グラフ化

# グラフを描画するライブラリ
from matplotlib import pyplot as plt

# グラフをJupiter Notebookに表示させるための指定
%matplotlib inline

# 配列aのデータを、maxmin列の値の大きい順にプロットする
plt.plot(a.sort_values("maxmin", ascending=False))

ランダムサンプリング

sample()でランダムに選んでくれる

# 抽出する行数を指定
data.sample(n=10)

# 割合を指定
data.sample(frac=0.8)

行ごとに中心化をする

それぞれの行のデータが平均値=0になるように変換したい。
転置して列ごとに中心化し、転置して戻すのが一番早そう。

data2 = data.T - data.T.mean()
data_centered = data2.T
0
0
0

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?