こんにちは、未経験からITエンジニアになって3ヶ月が経ちました!
今は新規事業開発の機械学習エンジニアもどきとして奮闘しており、
毎日知らないことだらけで何も理解していないんだなあと思い知らされる毎日です。
そういうわけでこの記事では、私が現時点でもっと早く知っておくべきだったと思うpythonについて紹介いたします!
もっとこうした方が初学者にとってわかりやすいよねだったり、詳細について間違いがある場合は教えていただければ幸いです。
Pythonとは
簡単にいうと、
数値計算によく使われ、人間が感覚的に理解しやすく初心者がとっかかりやすい言語です。
wikiを見てみると、
Python(パイソン)はインタプリタ型の高水準汎用プログラミング言語である。
wiki
と、初学者にはなんかよくわからないけど、高水準汎用という言葉だけで
なるほど、最強ということか!
と何も考えずになっていました。ここを少し深ぼってみましょう!
インタプリタ型言語って?
簡単にいうと、以下のような特徴を持つ言語です。
メリット :
– 人間が読みやすい・書きやすい
– 実行しやすい
デメリット :
– 処理速度が遅い
なるほど、ふ〜〜ん、わかった気がする
いや、そもそも何型があるんですか?
インタプリタ型言語とコンパイラ型言語があります。
順に見ていきましょう!
インタプリタ型言語
上で紹介したので、少し省略しますが、
コードを処理毎に機械語に翻訳し、実行する言語です
そのためすぐに実行結果がわかる一方で、
まとめて実行する際には、処理速度が遅くなってしまうデメリットがあります。
コンパイラ型言語
コードをまとめてコンパイラという機械語に翻訳する作業を行った後で実行する言語です。
メリット :
– 処理速度がはやい
デメリット :
– 実行がしにくい
– 人間が理解しにくい
コードをまとめてコンパイラするので、手軽に実行はできませんが、その分処理速度はとても早いです。
計算によってはPythonより50倍はやいこともあります。
学習コストの高いもの(難しい)が多いので、初学者にはあまりおすすめされていない言語な印象。
処理速度早いなら、コンパイラ型がいいのでは???
学習は難しいかもやけど。
そういうわけでPythonには他言語を元に作られた便利なツールが色々と揃っています。
コンパイラ言語との関わり
Pythonの処理速度の遅さを補うために用意されたツールが多くあります。
Pythonを少し使ったことのある人ならNumpyやPandas, SciPyを触ったことがあるのではないでしょうか?
Numpy
科学計算の基本的なパッケージで、Numpy配列という多次元配列オブジェクトが有名でしょうか。
Numpyの内部はコンパイラ型であるC言語で書かれているため、高速に動作します。
Pandas
異なる型のデータを入れられるデータフレームが有名です。
Pandasも主要なコードはコンパイラ型であるC言語で書かれています。
SciPy
そうです。SciPyのコンパイラ型であるC言語で書かれた機能を持ちます。
このようにPython自体は人間が直感で理解しやすく記述できながらも、
コンパイラ言語とのつながりという助けを得て、計算速度の遅さを補っているわけです。
まとめ
初学者にとって他言語との関わりを意識することはなかなかありませんが、
目を向けるようになってくるとどんな計算が行われているんだろう?処理速度をどうやって早くしよう?を理解して、自分の好きなようにコーディングできるようになっていくと信じているので、ともにがんばりましょう。
コメント