プログラミングを学ぶ人「ilocってどうやって使うの?」
今回はPythonでデータ分析をする際に必ず必要なiloc関数について一緒に勉強していきましょう。
Pythonのloc関数について以前にご紹介しているので是非ご覧ください。
iloc関数の使い方【python】
今回もloc関数と同様にscikit learnに収録されているIris dataを使って勉強していきましょう。
import pandas as pd
import numpy as np
from sklearn.datasets import load_iris
まずはIris dataをscikit learnからインポートします。
iris = load_iris()
df = pd.DataFrame(data=iris.data, columns=iris.feature_names)
df["label"] = [iris.target_names[i] for i in iris.target]
df.head()
Iris dataを読み込むことができました。
df.shape
#(150,5)
データの概要を確認します。本データは150列、5行から成っていることがわかります。
iloc関数:行や列のインデックスを使って要素を切り出す。
iloc関数は、行と列のインデックス(何行目もしくは何列目であるか)を指定して1つの要素、もしくは範囲を指定して複数の要素を参照することができます。
実際には次のような使い方をします。
・Dataframe.loc["行インデックス", "列インデックス"]
このように指定することで指定した行、列の要素が出力されます。
・Dataframe.loc["行インデックス1", "行インデックス2",・・・], ["列インデックス1","列インデックス2"・・・]
このように複数の行、列を指定することもできます。
今回もloc関数の記事と同じことをやってみます。
行の取り出し
#1行目を取り出す
df.iloc[1]
今回のデータでは行明とインデックスが同じであるので同じ出力結果になります。
#行が1、列がseptal widthを取り出す df.iloc[1, 1] #3
一つの要素を指定して出力することが出来ました。
大事なことはインデックス番号は0から始まることです。これを常に念頭に置きましょう。
#1〜4行目をまとめて取り出す
df.iloc[1:4]
こちらも行とインデックスが同じであるためlocと同じ入力・出力結果となります。
列の取り出し
次は列の取り出しを実践してみましょう。
# "sepal length (cm)"列をすべて取り出す
df.iloc[:,0]
列インデックス「0」がsepal lengthにあたるので注意が必要です。
septal lengthの列全てを取り出すことができます。
# "sepal length"、"sepal width"列を0~4列取り出す df.iloc[:4,[0,1]]
インデックスを指定した行、列を自由自在に出力することができます。
【参考にさせていただきました】
さいごに
今回はPythonの基本的なiloc関数について一緒に勉強しました。
iloc関数:行や列のインデックスを使って要素を切り出す。
・Dataframe.loc["行インデックス", "列インデックス"]
このように指定することで指定した行、列の要素が出力されます。
・Dataframe.loc["行インデックス1", "行インデックス2",・・・], ["列インデックス1","列インデックス2"・・・]
このように複数の行、列を指定することもできます。
locとilocの違い
loc関数:行や列の名前を使って要素を切り出す。
iloc関数:行や列のインデックスを使って要素を切り出す。
それぞれ概念自体の理解はとっつきにくいと思います。
具体例で実際にイメージしながらじっくりと理解していくのが良いと思います。
機械学習はプログラミング言語のPythonを用いれば、今持っている自分のパソコンですぐに実践することができます。
英語論文になっている手法もしっかりと勉強すれば、自分のパソコンで出来ます。
このサイトでは、プログラミングに興味のある医学生、医師のための情報を発信しております。
プログラミングの学習方法には大きく分けて、「独学」と「プログラミングスクール」の2つがあります。
当サイトでは一貫してプログラミングスクールを利用することをおすすめしています。
なぜなら、独学で勉強した私が非常に苦労したからです。
また私はプログラミングを学習するにあたり、師匠・メンターのような存在がいました。
わからないところは教えてもらっていました。
そのような環境でなければ0から独学で勉強するのはとても効率が悪いと思います。
詳しくは、プログラミングの独学は難しいです【私の失敗談】で紹介しています。
この記事が一人でも多くのプログラミングに興味のある方のお役に立てば幸いです。