連載
» 2019年02月14日 05時00分 公開

機械学習&ディープラーニング入門(Python編):Lesson 5 データ型(ブール/数値/文字列) ― Python基礎文法入門

Python言語の文法を、コードを書く流れに沿って説明していく連載。今回と次回は、値やデータの型を説明。今回はその前編として、bool型/int型/float型/str型を取り上げる。

[一色政彦,デジタルアドバンテージ]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「機械学習&ディープラーニング入門(Python編)」のインデックス

連載目次

ご注意:本記事は、@IT/Deep Insider編集部(デジタルアドバンテージ社)が「deepinsider.jp」というサイトから、内容を改変することなく、そのまま「@IT」へと転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。

 前回はPython言語の基礎中の基礎とも言える「変数」と、Pythonの世界を構成する「オブジェクト」について解説した。今回は、基本的なデータの型である「bool型(ブール型)」「int型/float型(数値型)」「str型(文字列型)」について説明する。脚注や図、コードリストの番号は前回からの続き番号としている。

 本連載は、実際にライブラリ「TensorFlow」でディープラーニングのコードを書く流れに沿って、具体的にはLesson 1で掲載した図1-a/b/c/dのサンプルコードの順で、基礎文法が学んでいけるように目次を構成している。今回は、図1-b/d内の一部コードを取り上げる。

TensorFlowの公式チュートリアルのサンプルコード(2) 図1-b【再掲】 TensorFlowの公式チュートリアルのサンプルコード(2)

TensorFlowの公式チュートリアルのサンプルコード(4) 図1-d【再掲】 TensorFlowの公式チュートリアルのサンプルコード(4)

 今回、本稿で説明するのは、図1-b/d【再掲】における赤枠内のコードのみとなる。青枠内のコードは次回説明する。

 なお、本稿で示すサンプルコードの実行環境については、Lesson 1を一読してほしい。

 Lesson 1でも示したように、本連載のすべてのサンプルコードは、下記のリンク先で実行もしくは参照できる。


Google Colabで実行する
GitHubでソースコードを見る

Python言語の基礎文法

 それでは、bool型/int型/float型/str型を順に説明していこう。

データの型(基本編)

 変数には、前回Lesson 4で見たような「モジュール」だけでなく、「数値」「文章」「一覧データ」など、さまざまな値/データが代入できる。例えばリスト7は、前掲の図1-b/d内のサンプルコードの中にある「変数に対して何かを代入している行」(=冒頭で示した【再掲】画像の赤枠の内容)を抜き出して並べたものだ。

# 変数への「数値」の代入
EPOCHS = 500

# 変数への「文字列値」の代入
color = 'blue'
#color = 'red'  # 同じデータ型なので説明省略

リスト7 変数への何らかの代入を行っているコード

 この例では、数値(500)と文字列値('blue')といいった値/データが変数に代入されている。この値/データの「種類」のことをtype)と呼ぶ。Python言語に標準で組み込まれている型(=組み込み型Built-in Types)には、主に以下のようなものがある(すべてではなく、今回紹介する分のみ)。

  • bool型: True(真)かFalse(偽)かの真偽値。ブール型
  • int型: 012-1-2といった整数値。数値型の一種
  • float型: 0.01.22.5-1.2-2.5といった小数点を含む実数値(=浮動小数点数と呼ぶ)。数値型の一種
  • str型: 'abc''012''あいう'といった、文章・テキストを形成する文字列(=文字の集合)値。文字列型

 それぞれ具体的なコードで示しながら説明していこう。

bool型(ブール型)

 bool型は、前掲のリスト7に示した「変数への代入」としては記述されていないが、データの型としては使用されているので(例えば図1-bにあるFalse)、やはり知っておく必要がある文法要素の一つだ。bool型の性質を理解するためにも、ここでは仮のサンプルコードで説明しておこう。

is_a = True
is_b = False

is_b  # Falseと出力される

リスト7-1 変数の宣言と「真偽値」の代入を行うコード

 リスト7-1の「真偽値」の代入をイメージで表すと、図9-1のようになる。

変数への「真偽値」の代入、のイメージ 図9-1 変数への「真偽値」の代入、のイメージ
すでにお分かりのように、「変数への代入」のイメージは前回のLesson 4の図8-1で示したものとほぼ同じで、値部分が違っているだけである。本稿では以降も同じであるが、コードの意味を想像してもらいやすいように、すべて同じように絵を入れている。同じイメージだと気付いてもらえたのであれば、本稿にある以降の絵については読み飛ばしても構わない。

 リスト7-1では、変数is_aと変数is_bTrue(真=正しい)やFalse(偽=間違い)という値(略して「真偽値」)を設定(=代入)している。なお、この変数名のis_ais_bには特別な意味はなく、「aかどうか」「bかどうか」という意味でこのような変数を自作した。

int型/float型(数値型)

 int型は、前掲のリスト7のコードに含まれていた。その部分を抜き出したのがリスト7-2だ。

EPOCHS = 500

EPOCHS  # 500と出力される

リスト7-2 変数の宣言と「整数値」の代入を行うコード

変数への「整数値」の代入、のイメージ 図9-2 変数への「整数値」の代入、のイメージ

 リスト7-2では、変数EPOCHS500という整数値を設定している。ちなみにEPOCHS(エポック)とは、機械学習/ディープラーニングの専門用語で、詳しくは『初めてのニューラルネットワーク&ディープラーニング実装(TensorFlow 2+Keras(tf.keras)入門)』で説明する。ここでは内容は分からなくとも「エポック(学習回数)を500回に設定した」という意味だと理解しておいてほしい。

 float型は、リスト7には含まれていないが、int型とほぼ同じと考えてよい。違いは、int型が整数のみを扱う型なのに対し、float型は実数(=整数も含めて、小数点が付く値)を扱う型である点だ。なお、float型の値は、厳密には「実数値」ではなく、プログラミング用語で浮動小数点数値と呼ぶ。浮動小数点数値とは、符号と指数と仮数を用いて表された実数値のことであるが、その内容を説明すると長くなってしまうので、ここでは説明を割愛する。「浮動小数点数値は、実数値と同等のもの」と考えておけば問題ない。

 機械学習/ディープラーニングでは、int型よりも、float型の方をよく使う。

 ここでも仮のサンプルコードで説明しておこう。

float_variable = 123.456

float_variable  # 123.456と出力される

リスト7-3 変数の宣言と「浮動小数点数値」の代入を行うコード

変数への「浮動小数点数値」の代入、のイメージ 図9-3 変数への「浮動小数点数値」の代入、のイメージ

 リスト7-3では、変数float_variable123.456という数値を設定している。

str型(文字列型)

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。