【Python入門】ネコでも分かる「Pythonの基本」まとめ
はじめに
今回は、機械学習やDeepLerningをする方向けに、Pythonのプログラミングの基本について、書きました。
初心者にも分かり易いように図解したので、分からないところがあればコメントお願いします。
今回紹介する「Pythonの基本」の全体像はこんな感じです。
変数、配列、関数、クラス
モジュール、パッケージ、ライブラリ
それぞれ解説していきます。
Created by NekoAllergy
変数、配列、関数、クラスとは?
変数、配列、関数、クラス
Pythonのプログラムでよく使用する、変数、配列、関数、クラスについて解説します。この4つは、Pythonだけでなくすべてのプログラミング言語で使われている重要な考え方です。
-
変数
数字を入れておく箱 -
配列
数字をまとめて入れておく箱 -
関数
よく使う処理をまとめたもの -
クラス
変数、配列、関数をまとめる便利な設計図
1. 変数(Variable)
変数は、数字を入れておく箱です。
この箱に数値を入れておくと、値が保存されるので、後で使いたいときに使うことができます。
たとえば、機械学習においては、「何回学習させるか」だったり、「層の数」などを変数として、箱の中に入れておくと便利です。
たとえば?
下の例は、count
という名前の変数(箱)に100
を入れ、layer
という名前の変数(箱)に3
を入れています。
count = 100
layer = 3
数字だけでなく、文字も入れることができます
hello = "こんにちは"
変数に入れておくことで、数値の書き換えや難しい変換も簡単にできます。
2. 配列(Array)
配列は、たくさんの数字を ”まとめて” 入れておく箱です。
さっきの変数との違いは、いくつかの数値をまとめて入れることができる点です。変数を何個か作っても、たくさんの値を保存できますが、数字がバラバラに保存されているため、1つ1つの値の関係性がよく分かりません。そこで便利なのが配列です。
たとえば?
たとえば、毎日の気温データは、
yesterday_temp = 19
today_temp = 18
tomorrow_temp = 20
のように、1つずつ変数を作って、それぞれが分けられているよりも、
temp = [19, 18, 20]
のようにまとめてあるほうが分かりやすいです。
たとえば、写真はたくさんの数字の集まりでできています。写真などの画像データをpythonを使って解析したりすることはよくありますが、その際は、画像データをいったん配列に入れ、プログラムで扱いやすいようにします。配列を使うことで数字をまとめて扱うことができます。
DeepLearningではたくさんの数字を使うので、配列はめちゃくちゃよく使います。数学的にいうと、「行列」を実装するために、配列はとても便利です。
【補足】Pythonでは主に3種類の配列があります。
a = [1, 2, 3] #こんな配列や、
b = (1, 2 ,3) #こんな配列や、
c = {"apple": 1, "orange": 2, "grape": 3} #こんな配列があるよ
それぞれに特徴があるので、詳しく知りたい方は調べてみてください。
3. 関数(Functions)
関数は、よく使う処理をまとめて、いつでも、どこでも、何回でも使えるようにセットにしたものです。
DeepLearningの処理は、たいていパターンが決まっています。たとえば、人工知能に何かを覚えさせるためには、同じ処理を100回や1000回、もっとたくさん繰り返すこともあります。こんな時、同じプログラムを毎回書くのはダルいし、プログラムとしての見た目も悪いので、関数という機能が便利に使えます。
関数を理解するときに大事なのが、「引数」と「返り値」 です。
簡単に説明すると、引数は「計算に必要な情報」、返り値は「計算結果」を意味します。料理に例えるなら、「引数という具材を使って、関数でいろいろ調理(計算)して、できた料理が返り値」と思えば理解しやすいと思います。
また、関数は「組み込み関数」と「ユーザ定義関数」の2つに分けることができます。
組み込み関数(Built-in Functions)
「組み込み関数」とは、Pythonプログラムの中で、最初から設定されている関数のことです。あなたがプログラムを作った瞬間から、便利な機能を使うことができます。
組み込み関数の一覧。全部で69コの関数が使える。
組み込み関数の例
たとえば、print()
という関数は、文字を出力できるし、abs()
という関数は絶対値を返してくれます。
print("hello")
#結果⇒ hello
abs(-125)
#結果⇒ 125
これらは最初から用意されている便利な関数です。
ユーザ定義関数
「組み込み関数」の反対が「ユーザ定義関数」です。
組み込み関数と違い、自分で作ることができる関数を「ユーザ定義関数」と呼びます。
自分で自由に関数を作ることができます。
「この処理何回も繰り返すな」とか、「プログラムが大きくなってきたので、いい感じにまとめて整理したい」と思ったら、関数の出番です。
関数の作り方
関数を作るときにはdefというのを使います。
define(定義する)の略です。
def hoge(): #hogeという名前の関数を定義
print("hoge") #処理1
print("fuga") #処理2
print("piyo") #処理3
#この時点では、まだ定義しただけなので、なにも実行されない。
hoge() #関数名() で関数を実行できる。ここで初めて実行される。
#結果
hoge
fuga
piyo
4. クラス(Class)
クラスは、よく「設計図」と言われます。クラス=関数のパワーアップ版、と考えても良いでしょう。クラスには、変数や配列、関数の処理をまとめることができます。
DeepLearningでは、AIの形や大きさ、どんな動作ができるか、をクラスとして定義します(AIのモデルと呼びます)。この時、AIをどんな形や大きさにしたいかを変数や配列に入れ、どんな動作をさせたいかを関数として書きます。これをまとめたのがクラスです。クラスは、DeepLearningではとても重要な考え方です。
クラスを使う時に重要になるのが「オブジェクト指向」という考え方です。
詳しい説明は省きますが、「クラスという設計図を使ってクローンを生成しまくる」という考え方です。
詳しくは調べてみてください。どのサイトも結構難しい言葉を使って書かれているので、いつか世界一分かり易い記事を書きます。
ライブラリ、パッケージ、モジュールとは?
モジュール、パッケージ、ライブラリ
Pythonの学習を進めていくと、 「ライブラリ」「パッケージ」「モジュール」 という言葉をよく見ると思います。
それぞれの役割や違いが分かりにくかったので、まとめました。
続きの内容は本にまとめてあります。
手に取って頂けるととても喜びます。
これ↓
機械学習をもっと詳しく
ねこアレルギーの AI
YouTube で機械学習について発信しています。お時間ある方は覗いていただけると喜びます。
Created by NekoAllergy
Discussion
下記のような記載がありますが変数、配列、関数もクラスであり、それぞれに以下のような包含関係はありません。
この記事は正確性に問題があります。