こんな人におすすめの記事
- これからプログラミングを勉強してみようと思っている人
- Pythonという言葉を聞いたことがある人
- 機械学習やAIに興味がある人
- 業務の効率化としてPythonが気になっている人
Pythonの特徴
Pythonの特徴は2つ。
この特徴を理解できると、なぜPythonが選ばれているのかが分かる。
- コードを書く→実行までが早い
- 便利道具がめちゃくちゃ用意されている
コードを書く→実行までが早い
一般的にプログラミング言語は、次の手順で実行される。
代表例はJavaである。
- コードを書く
- 機械が理解しやすい形に変換する(コンパイル)
- 機械がそれを読み取って実行する
たくさんコードを書く人は分かると思うが、
何度も「コードを書く→実行」を繰り返す人は
2の変換手順がだんだんと面倒になってくる。
そういったことがあり、
最近では2の手順が不要の言語が人気になっている。
2と3の手順を一気にやってしまうことにより、
コードを書く→実行してみる
の手順をサクサク行えるようになった。
こういった言語のことを、インタプリタ言語という。
Pythonはまさにインタプリタ言語であり、
コードを書き終わったらすぐに実行して検証できる。
「コードを書く→検証」をたくさんやりたい
機械学習の分野では、この特徴が一役買っている。
便利道具がめちゃくちゃ用意されている
Pythonは、あらかじめライブラリと呼ばれる道具や部品がたくさん用意されている。
例えば、車を作りたいときに、
ボディ、ハンドル、タイヤ、エンジンなどが
全部用意されていて、あとは組み立てるだけといったイメージだ。
金属の板から車を作る必要はない。
Pythonは、このような部品や道具が
他のプログラミング言語と比較して充実している。
特に機械学習で使うような難しい数式なども
自分で一から作るのではなく、既に用意されている。
これが機械学習の分野でPythonが選ばれる大きな理由だろう。
Pythonの得意分野
- 機械学習
- データや画像の処理、分析
- スクレイピング(Webサイトを全自動で読み取る)
- 業務効率化ツール
データ処理、分析、スクレイピングは
ライブラリが充実しているため、
他の言語に比べて簡単に作りやすい。
また、ファイルの読み書き、データの処理、加工などのライブラリも充実しているため、業務効率化ツールを作りたいときにも向いていると言える。
また、スクレイピングも業務効率化に役立つと考えられる。
別にPythonじゃなくても良いもの
- Webサービス開発
Pythonは、Djangoというフレームワークを使って
Webサイトも作ることができる。
十分使いやすいものだが、
他にもWebサービス開発に向いている言語はたくさんあるため、
以下のような理由がない限り、
個人的にはWebサービス開発にPythonは選ばない。
- Pythonが得意である
- データ処理をたくさん行う
- Pythonを使ってWebサービスを開発している会社に入社する
Pythonに向いてないこと
- ゲーム作成
- アプリ作成
まとめ
- コード書く→実行がすぐできる
- 便利な部品や道具がたくさん揃っているため、データ処理、分析が得意
- データ処理が得意ということは、機械学習に向いている
- スクレイピングをしたいならPython一択
- ファイル操作も得意なので、業務効率化にも向いている(エクセルとか)