【プログラミング言語】Python(パイソン)

当ページのリンクには広告が含まれています。

こんにちは、KiYOです。

システムエンジニア歴20年オーバー。製造現場に特化したシステム開発を主にやってます。

新しい物好きで色々なIT技術を勉強しては、仕事に使って行ってます。

KiYO
KiYO

Python(パイソン)について紹介します。

仕事で最適化問題を解くために採用しましたが、うまいこと最適化してくれなくて見事失敗しました。 なぜダメだったか色々試行錯誤しながら使えるようにしていきたいと思って、Python勉強に励んでいます。

この記事でわかる事
  • Pythonの特徴
  • Pythonの歴史
  • Pythonの利用シーン

今回はこの本を参考に、私の独断と偏見で記事を書いています。

言語を5点中評価

容易性容易に言語習得できるか?
将来性将来性があるか?
普及度普及しているか?4.5
保守性保守性が高いか?4.5
中毒性ハマるか?3.5
22.5
目次

Pythonの特徴

機械学習など幅広い分野で使用されている書きやすい言語

特徴
  • オブジェクト指向のスクリプト言語
  • 文法が単純化されていて誰が書いても同じように読みやすいプログラムになるように設計されている
  • 空白による字下げ、インデントにより構文ブロックを表現
  • 多くの充実したライブラリが用意されている
  • 機械学習・深層学習の分野でデファクトと言える言語

Pythonの歴史

開発者グイド・ヴァンロッサム、Python Software Foundation
誕生1991年にPythonのバージョン0.9が公開
公式サイトhttps://www.python.org

言語の歴史

1991年Pythonのバージョン0.9が公開。オブジェクト指向の機能実装
1994年バージョン1.0が公開。ラムダ式やmapなどの関数が実装
2000年バージョン2.0が公開。ガベージコレクションやUnicode、リストの機能が実装
2008年バージョン3.0が公開。Python2.x系と一部互換性なく移行が難航
2019年開発者のグイド・ヴァンロッサム氏が開発から退く。

AIブームで火が付いた

世界中で使われているPythonですが、日本では2010年代中頃まで、あまり活用されていませんでした。PythonのライバルであるRubyの存在が大きかったのかも知れません。

しかし、第3次AIブームにより機械学習や深層学習(ディープラーニング)が盛り上がると日本でも使われることが多くなってきました。

ThensorFlowやPyTorchなどの有名な機械学習フレームワークがPython向けに作成されました。

スッキリした言語

Pythonの言語仕様の大きな特徴が、インデント(字下げ)によるブロック表現と言えます。多くの言語では「{・・・}」のような波括弧などで表現しますが、Pythonはインデントを用います。

他にも、あることを達成したい時に方法を可能な限り1つに限定することで可読性を高めるといったPythonをスッキリした言語にするための哲学があります。

AnacondaとPython

AnacondaとはPythoおよび有名なPythonライブラリをまとめたPythonのディストリビューション(配布・実行環境)です。Anacondaは機械学習を含む有名なPythonライブラリで最初から同梱しており人気です。

コラム

Pythonは世界中で利用されていますが、万能ではありません。

Pythonは動的型付け言語であり、インタプリタ上で実行されるため、動作速度はCやC++などの静的型付けのコンパイル言語には負けてしまいます

また、型をエラーチェックしたいケースでは動的型付け言語では困ることもあります。近年ではType Hints(型ヒント)という、Pythonに型注釈を後付けできるような機能が追加されました。

Pythonの利用シーン

Pythonは手軽に始められる上に、多くのライブラリが用意されています。そのため機械学習(AI)、スクリプト、Webアプリ、教育分野、データサイエンス、スクレイピング、バッチ処理、デスクトップアプリ、システム管理など広く使われています。

機械学習

  • 機械学習とはAIの一分野の技術
  • ライブラリ「Scikit-learn」は、分類、回帰、クラスタリングなどサポート
  • Pythonは機械学習ライブラリが最も充実している
  • 行列計算ライブラリのNumPyや科学技術計算のSciPyがある
  • 機械学習の実行や可視化ができるノートツール「JupyterNotebook」が有名

深層学習(ディープラーニング)

  • 機械学習の中でも最も注目を集めているのが深層学習
  • 多層のニューラルネットワークを用いた機械学習の手法の一つ
  • ライブラリで最も人気があるのがGoogleのTensorFlow
  • 人気のある深層学習フレームワークのほぼ全てがPythonを主な対象としている

Weアプリケーション開発

  • 代表的なフレームワークにDjangoやFlaskなどがある
  • Djangoはフルスタックと呼ばれる機能が充実。大規模なWeb開発に向いている
  • Flaskは機能を絞った軽量フレームワーク。小中規模のWeb開発向き
  • YouTubeやInstagramはPythonを一部用いて開発している

Python2とPyhton3

  • Pythonのメジャバージョン2と3は長らく共存していた。(2から3へ変更が大きかった)
  • 既に大量のコードが2で書かれていたため移行が難航。ライブラリやフレームワークも3には直ぐに移行できないものがあった。
  • 近年ではこれらの課題はほとんど解消。多くのライブラリやフレームワークは3を採用し、、移行もかなり進んでいる

Pythonの実行速度とC拡張

  • Pythonはインタプリタ言語であるため実行速度に難あり。(Cなどの方が早い)
  • 実行に時間がかかりそうな処理はCに任せてしまう方法がある。(C拡張)
  • 数値計算のNumPyなどはC拡張ライブラリを採用。その為、利用者はCのことを知らなくてもその恩恵を受けることができる

PyPIとpip

  • Pythonのライブラリは「PyPI (Python Package Index)」に登録
  • PyPIはPythonライブラリのカタログ的存在
  • Pythonに同梱されているpip(パッケージマネージャ)を使うことで、ライブラリを簡単にインストールできる
  • AnacondaもPythonパッケージを配布している

まとめ:これから言語を覚えるならPythonを覚えよう

今回はPythonについて解説しました。

機械学習や深層学習するには、Pythonとそのライブラリやフレームワークを覚えることは必須です。

Pythonの必要性

機械学習や深層学習のライブラリやフレームワークがPythonを主な対象としている

言語仕様がシンプルで誰が書いても同じように書けて、可読性が高い

色々な業種や分野で採用されており、需要が高い

なぜなら、言語を覚えたとしてもそれを使うシーンが少なければ、意味がありません。

やりたいことを実現するために、Pythonの使い方をマスタしましょう。

以上、KiYOでした!

今回参考にさせていただいた本はこちらです。今回紹介した言語やその他言語も紹介されているので大変勉強になりました。

Udemy(ユーデミー)というオンライン講座がおすすめです。非常にわかりやすい説明と実際のPC画面の映像で説明してくれるので理解が早いし、わからなかったところを何度も見返すことができます。

非常におすすめです。

まとめページで、他のプログラミングも紹介していますので、ご覧ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ITの事や自分の経験談など綴っていきたいと思っています。

コメント

コメントする

CAPTCHA


目次