Pythonでできることは?機械学習・Web【PHPではダメ?】

Pythonでできることは?機械学習・Web【PHPではダメ?】 プログラミング

Pythonに興味がありますか?
ありますよね。
だから、この記事にたどり着いたのでしょう。

まずは、この記事のターゲットについて説明します
この記事は、次の方をターゲットにしています。

  • PHPで開発をバリバリしているエンジニア
  • PythonとPHPのどちらを学習しようか迷っているプログラミング入門者

次に、この記事を読んで得られるメリットについて説明します。

  • Pythonによりできること・できないことがわかる
  • Pythonの何がすごいのかがわかる

そして、この記事は以下の内容で説明していきます。

本記事の内容

  • Pythonと機械学習
  • PythonとExcel
  • Pythonと自動化
  • Pythonとブログ作成
  • PythonとWebアプリ

この記事を書いている私は、PHPとJavaで長年開発をしてきました。
しかし、Python歴も3年ほどあります。

これらを経験をもとに本記事の説明をしていきます。

Pythonと機械学習

Pythonと言えば、これではないでしょうか?
実際、私がPythonを触ったキッカケも機械学習でした。
正確には、人工知能に興味を持って、Pythonを学びました。

なぜ、Pythonは機械学習(人工知能含む)の分野で利用される言語なのでしょうか?
答えは、初心者でも簡単に習得できる言語だからです。

まだ、この回答ではしっくりきませんよね。
続きがありますので、ついてきてください。

そもそも、数学や統計をメインで行っている人々は、プログラマーではありません。
彼らは、機械学習エンジニアやデータサイエンティストと呼ばれます。
その彼らが、好んで利用したのがPythonなのです。

そして、彼らが機械学習向けのライブラリやフレームワークを生み出しました。
部品にしてみんなで使う方が、業界全体にとっても良いことですからね。

結局、ライブラリやフレームワークの存在がすべてです。
これがあるからこそ、多くの人が集まるのです。

最後に整理します。

Pythonはシンプルかつ読みやすいプログラム言語

機械学習エンジニアやデータサイエンティストがPythonを好んで利用

Pythonで機械学習向けのライブラリやフレームワークが多く作られる

そのライブラリやフレームワークを目当てに多くの人が集まる

Python=機械学習のイメージとなる

PythonとExcel

ビジネスの現場では、まだまだExcelが利用されています。
データ分析に用いることも多いですね。

そこで、ExcelをPythonで扱おうとする人たちが出てきます。
そして、そういう人たちによって、ExcelをPythonで扱うためのライブラリが作られています。

次のような書籍も発行されています。
Excel×Python最速仕事術 (日本語) 単行本

PythonでExcelを扱うためのライブラリは以下。

  • OpenPyXL
  • xlwings
  • Pandas

プログラマーにとっては、あまりエクセルでの分析は関係ないかもしれません。
なぜか、エクセル嫌いのプログラマーが多いですからね。。。

でも、このような業務効率化につながる技術を知っていることは、役に立つことが多いでしょう。
その意味でも、PythonとExcelの相性を覚えておいて損はありません。

Pythonと自動化

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング
ずばりの本ですね。

やはり、ここでもPythonのらしさが発揮されています。
シンプルで読みやすい、というPythonのいいところですね。
だから、プログラマーでない人間でも対応できるのでしょう。

プログラマーの手を借りずに自分たちで業務を効率化するということです。
これは、上記の「PythonとExcel」で述べたことと関連します。

Pythonでできる自動化の事例をあげておきます。

  • スクレイピング
  • Web操作
  • Excel処理

スクレイピング

これもPythonの代表的な使い方になるでしょう。
私もよくPythonでスクレイピングします。

ただし、簡単な処理や検証の場合に限ります。
がっつりやるときは、得意の言語(PHP)でやります。

このスクレイピングにおいても、ライブラリが充実しています。
いろいろありますが、次の二つで十分です。

  • Requests ⇒ ページのソース取得
  • BeautifulSoup4 ⇒ 取得したソースからデータ抽出

これだけマスターすれば、大抵のページをスクレイピングできます。

Web操作

Web操作を説明するには、Seleniumの理解が必要です。
Seleniumとは、Chromeなどのブラウザを自動で操作するソフトウェアです。

Python関係なく、Selenium単体でブラウザの自動操作ができます。
自動操作のための手順書のようなものを作る必要があります。

Seleniumに関しての理解は、大丈夫でしょうか?
大丈夫なら説明を続けます。

そして、PythonはこのSeleniumをプログラムで制御することが可能です。
上記の手順書をプログラムで自動作成できるとイメージしてください。

これの何が凄いのか?
凄いですよ。
以下のことが可能になります。

  • Webシステムのテスト自動化
  • 難易度の高いスクレイピング
  • 自動アンフォロー

Webシステムのテスト自動化

Selenium単体でも、テスト自動化は可能です。
調べれば、たくさん事例が出てきます。

ただ、それのために操作の手順書を何個も作成するのは手間です。
管理も大変です。
ここでいう管理は、テストを実行したどうかという管理です。

しかし、SeleniumをPythonで操作できるなら事情は異なります。
手順書も自動で作成可能。
管理も自動となります。

これらの手間も自動化できるのです。
自動化できる幅が広くなると言えますね。

もちろん、Pythonのコードやそれに伴うテーブル設計は必要です。
でも、これは一度やっておけば、再利用も可能となります。

難易度の高いスクレイピング

例を出すと、ログインが必要なサイトのスクレイピングです。

このようなサイトをスクレイピングしようとします。
そうすると、コードが結構複雑なものになってしまいます。

それが簡単にできるようになるというメリットがあります。

自動アンフォロー

上記二つは、経験がないとなかなかイメージするの、が難しいかもしれません。
では、簡単にイメージできる事例を説明します。

Twitterの自動アンフォロー(フォロー解除)です。
これは、実際にやりました。

フォローに関しては、一度に30個までという制約があるので手動でチマチマします。
これを繰り返して、1000人フォローします。

しかし、このうち半分の500人しかフォローバックしませんでした。
そうなると、片思い状態の500人をアンフォローしたいですよね?

これを一気にプログラムで行うことができます。
※TwitterのAPIは申請が面倒なので使いたくありません(利用制限も厳しいです)

このようなことも、PythonとSeleniumを組み合わせれば可能です。

Pythonとブログ作成

ブログのシステムと言えば、WordPressです。
WordPressは、PHPで開発されています。

それなのに、Pythonでブログ?
ですよね。

検索しても、全く出てきませんね。
なんとかgithubで以下のものを見つけたぐらいです。
https://github.com/martinpeck/python-blog

これで正解だと思います。
ブログは、WordPressで十分です。

それもあえて、Pythonで開発する意味はありません。

PythonとWebアプリ

クラウドワークス上のWeb開発案件のPHPの依頼数
PHPの案件数:9222件
クラウドワークス上のWeb開発案件のPythonの依頼数
Pythonの案件数:3512件

それぞれクラウドワークス上で調べた結果です。
ただし、案件の依頼者(システムの素人)が登録するので、正確性は望めないです。
それでも、人気の傾向を把握するのには使えるでしょう。

現在、Pythonは勢いのあるプログラム言語です。
しかし、市場におけるWeb開発案件では、まだまだPHPの牙城を崩せないようです。

でも、個人的には、案件数がPHPの3分の1もあることに驚きました。
私自身、PythonでWebアプリを開発した経験がありません。
そして、おそらく今後もないでしょう。

なぜなら、PHPでWebアプリを問題なく開発できるからです。
PHPで十分です。

WordPressがPHPで開発されている限り、その考えを変えることはないでしょう。
でも、Pythonで開発されたWebサイトを見ると、そうとばかりは言えないのですよね。。。

Pythonで開発されている有名サイト

  • YouTube
  • Instagram
  • Dropbox

それでも、PHPの生命力に期待します。
Webは、PHPで十分です。
まだまだ、この流れは続くと思います。

まとめ

次の項目に沿って、Pythonを説明してきました。

  • Pythonと機械学習
  • PythonとExcel
  • Pythonと自動化
  • Pythonとブログ作成
  • PythonとWebアプリ

この記事を読んで、次のメリットを得ることができたでしょうか?

  • Pythonによりできること・できないことがわかる
  • Pythonの何がすごいのかがわかる

「できた」というのであれば、記事を書いた甲斐があります。
「できていない」というのであれば、ますます精進します。

「できた」「できていない」に関わらず、まとめに入りたいと思います。

Pythonは、機械学習、Excel操作、自動化で利用しましょう。
PHPは、Webアプリ(ブログ含む)で利用しましょう。

これが、私の意見です。
PHPとPython、二つともPで始まるプログラム言語です。

葉は、「二つのPをモノにしよう」です。
二つのPをモノにすれば、プログラマーとして需要はあり続けるでしょう。

タイトルとURLをコピーしました