生成AI時代と呼ばれるいま、あるプログラミング言語が人気を増しています。それは「Pyhon」です。AIを活用したシステムの開発にはJavaやRなどの言語も使われますが、Pythonは特に高い人気があります。なぜ人気なのか、AIとどんな関係があるのか、またどのように学んだら良いのか。Pythonの入門編として、基礎を解説します。
生成AIとPython
Pythonはいまや世界で最も人気のある言語です。実際、シェア率は数年前までトップの人気を誇っていたJavaやC言語を追い抜いて1位(2024年4月現在 TIOBE調べ)。なぜこんなにも人気な言語になったのでしょうか。
その大きな理由が、豊富なライブラリによるAI開発への活用の幅の広さです。「ライブラリ」は、プログラムを開発するための部品のようなもの。Pythonという言語をベースに、そうした部品を組み合わせていくことでさまざまなシステムを創り上げることができるのです。
PythonはAI開発向けのライブラリが非常に豊富で、「こんなことをしたい」という思いを実現するためのライブラリは既に公開されていることがほとんどです。つまり、AI開発のための部品が揃っていて、あとは自分で組み合わせていくだけ。AI開発のための強固な基盤がPython最大の強みです。
その一例を紹介します。例えば科学計算用ライブラリの「NumPy」を使えば、機械学習のような膨大な計算を必要とするプログラムを書くことができるようになります。そして機械学習用ライブラリ「scikit-learn」。データ分析や機械学習に必要な機能がひとまとめに備わっており、データの前処理や、予測、モデルの評価など、やりたいことに合わせて活用ができます。
このように、Pythonという言語一つでAI開発に活用できる幅の広さが人気の理由なのです。
Pythonの特徴
PythonはAI開発に活用できる言語であると紹介しましたが、もともとWeb開発などの分野でも人気のある言語で、YouTubeのシステムもPythonで作られています。では、Pythonとはどのような特徴を持った言語なのか。ここで、いくつか紹介します。
シンプルで読み書きがしやすい
もともとPythonは読み書きしやすいプログラミング言語として開発されました。書く人によって読みやすさや処理の効率が変わる言語もある中、誰が書いても同じようなコードになるようにできているのは大きな特徴です。
その読み書きしやすさの理由のひとつが「オフサイドルール」です。インデント(字下げ)によってコードを明確にブロック分けします。これによりコードを書いた人にとって読みやすく、チームでの開発もしやすいプログラミング言語となっています。
豊富な標準ライブラリと外部ライブラリ
先述したように、Pythonには豊富なライブラリが揃っています。それには「標準ライブラリ」と「外部ライブラリ」の2種類があります。
標準ライブラリは、Pythonのインストール時から既に含まれており、別途インストールする必要のないものです。計算や乱数生成、ファイル操作など、汎用的に使えるものが備わっています。
外部ライブラリは、新たに外部から読み込むことで利用できるものです。企業や一般のプログラマなどが開発したもので非常に数が多く、日に日に増えています。「これが作りたい」を実現できるのも、この外部ライブラリがあるからこそです。
インタプリタ言語
「インタプリタ言語」とは、人の言葉で書いたコードが機械の言葉に翻訳しながら実行される言語のことです。1行ずつ読み込まれるために実行速度は遅くなりますが、エラーを見つけやすいという特性があります。
ちなみに、これと反対の性質を持つのが「コンパイラ言語」です。全てのコードが機械の言葉に翻訳されてから一気に実行されるもので、JavaやC言語がこれにあたります。
動的型付け言語
プログラムの中で用いられる数値や文字列などのデータの種類を「型」といいます。この型を人が指定する言語と、指定せず実行する際に動的に決められる言語があり、Pythonは後者にあたります。
型が勝手に決まると、型の種類やデータの大きさを気にしなくて良いので、コードを書くのが簡単で見やすくもなります。一方で、型が明記されていないことにより、コードを書いた人にしかデータの扱いが分かないというデメリットも。また、決められた型が自分の思っていたものと異なった場合に、思ったように動かなかったり、エラーが発生したりしてしまうこともあります。
オブジェクト指向型言語
ソフトウェア開発の考え方のひとつで、「役割ごとにパーツを作り、それを組み合わせることで一つのプログラムを作る考え方」です。
細かくパーツに分けて作られているため、そのパーツを使いまわすことができ、効率良く開発や修正をすることができます。ちなみに、これと異なる性質をもつ言語を「手続き型言語」といいます。
Pythonの用途
先述したように、PythonはWeb開発から生成AIまで幅広く活躍しています。では実際にどんな用途で使われているのでしょうか。代表的なものをピックアップして紹介します。
Web開発
Web開発に活用できるライブラリ等が豊富にあるため、GoogleやAmazonなどの世界的企業でも開発にPytonが使用されています。Instagram、Youtube、Dropboxといった身近なサービスもPythonで作られているのです。
Web上のデータ収集(スクレイピング)
PythonはWebからの情報収集も得意としています。天気やレビュー、ECサイトの商品や航空券、株価などさまざまな情報を集めることができ、航空券の比較サイトのSkyscannerでも実際にPythonが使用されています。
機械学習・ディープラーニング
ライブラリを活用することで、画像やテキスト、音声情報をもとに分析することができます。それを機械学習やディープラーニングに活用し、顔認証機能や、ECサイトの購買履歴データをもとにした別商品の推薦機能などに利用されています。
業務効率化
ExcelやWordなどのファイルを作成したり、データをまとめて加工したりと、作業の自動化にもPythonは利用されています。例えばライブラリ「OpenPyXL」を使うとExcelファイル操作やデータ加工、図表作成などを自動化でき、「Selenium」はブラウザ操作までも自動化することができます。
データ分析
高速なデータ分析を可能にする「Pandas」やデータを可視化する「Matplotlib」など、データを扱うためのライブラリが豊富で、Pythonは情報の分析や解析も得意としているのです。楽天市場やぐるなびでも、物流戦略やマーケティングにおいてPythonによるデータ分析を行っているといいます。
Pythonの学び方
Pythonを学びたいときにどのような方法があるのか、いくつか紹介します。人気な言語なこともあり、今はたくさんの学習方法があるので、自分に合うかどうかや目的に合わせて選ぶことができます。
オンライン学習プラットフォーム(eラーニング)
プログラミングに触れたことがない人や、継続できるか不安のある人、気軽に学習を始めてみたい人におすすめの方法です。
月額プランで安価に始められ、スキマ時間などでも気軽に勉強できる「ドットインストール」「Progate」、学習サポートが手厚い「Aidemy」などのサービスがあります。自分の勉強スタイルや目標に合わせて選択しましょう。
書籍
体系的かつ俯瞰的に学びたい場合や、ネット環境がない場所でも学習したい場合は書籍がおすすめです。見た目の好みやレベル感で選択肢が多くあるのも書籍のメリットでしょう。
AIを活用しながら学べる『ChatGPTと学ぶPython入門』や初心者のつまづきやすいポイントを押さえた『スラスラわかるPython』など、初めての人でもやさしい内容でしっかり学べる書籍があります。
Web教材
学習や演習のための教材がWebで無料公開されています。基礎を学んだあとや、他のプログラミング言語を勉強したことのある人は、そうした教材を活用するのも良いでしょう。
東京大学から「Pythonプログラミング入門」、京都大学から「プログラミング演習 Python 2021(PDFファイル)」が公開されています。
公式ドキュメント
Pythonの公式ドキュメントには、インストールから構文の解説、Q&Aなどが詳細に記されています。プロのプログラマも、困ったらまず公式ドキュメントに立ち返ることも多く、信頼の出来る確実な情報源です。ただし、網羅的に書かれているものなので、教科書や辞書のような使い方に向いています。
コミュニティ
Discordを活用したものや、オフラインのもくもく会など、学習に活用できるさまざまなコミュニティがあります。また、「PyCon JP」などの講演会や勉強会もあります。
学習のモチベーション維持に不安がある人や、誰かと一緒に学びたい人、分からないことを誰かに聞きたい人におすすめです。書籍など別の方法と組み合わせると良いでしょう。IT勉強会支援プラットフォーム「connpass」で検索すると沢山出てくるので、探してみてください。
まとめ
今回はPythonの入門編として、前提知識や活用について紹介しました。次回はセットアップや構文について紹介します。より実践的にPythonについて知ることができるので、次回も是非ご覧ください。