白黒つけようぜ!くまねこ(@kumanecoblog)です。
今日もPython捗っていますか?
Python(プログラミング)の学習を進めていくと必ず出会う言葉「ライブラリ」。
感覚的には意味が分かるけれど、
「ライブラリとは?」と疑問に思ったりしたことはありませんか?
僕はよく分からずに、
参考にしているものに従って「このライブラリをインポート」とやっていました。
もちろん、昔の僕のように意味が分からなくても使えます。ただ、意味が分かることで
なにか調べたり参考にする時の理解度が圧倒的にアップします。
今回は、ライブラリの意味だけではなく、よく混同してしまう「フレームワーク」との違いなども含めてお伝えしていきます。
小さな「分からない」が積み重なると、いつか大きな分からないに変身しちゃって、
学習速度の低下や挫折につながっちゃう。それは勿体ない。
だから、今のうちに解消しちゃおう!
という悩みを解消するのに役立ちます。
1. ライブラリとは
1.1 ひと言で
ライブラリとは、
「他の場所でも使える便利なプログラムの部品が入ったファイル」のことです。
くまねこ的キーワードは
「使いまわしちゃえ!」です。
1.2 日常で置き換えてみると
ライブラリを日常のものと置き換えて説明すると
醤油です。
料理する方ならピンとくると思いますが、醤油って便利ですよね。
なんか気づいたら、毎回なにかしろの料理に入れてる気もします。
では、想像してみてください。
麻婆豆腐を作るときに使った醤油を、肉じゃがを作るときにも使う。
どうでしょうか、結構当たり前の日常ではないでしょうか?
その醬油のこそ「ライブラリ」と言います。
この場合「醬油ライブラリ」ですね。
でも、この醤油を自分で毎回1から作るのはめんどくさいというか普通に素人じゃ無理ですよね。
なので、誰かが作った醬油ライブラリを使います。
これこそが「ライブラリ」です。
1.3 詳しく説明(画像付き)
1.3.1 プログラムの中は
ライブラリの説明の前に、まずプログラムについて説明します。
プログラムとは、1つのサービスやシステムのことで、いくつかのシステムで構成されています。
簡単に言えば、パソコンに「あれやって~」と指示を出すものです。
プログラミングはそれを作ることです。
プログラムの中は
いつくかのシステムで作られています。
イメージはこんな感じです。
このシステムのことを「大きなシステム」としましょう。
この大きなシステムの中にもたくさんの「小さなシステム」が入っています。
つまり小さなシステム達が大きなシステムを支えています。イメージはこんな感じです。
頼もしいですね。
その小さなシステムの中はシステムを作る部品がたくさん入っています。
なにが言いたいかと言うと、この小さなシステムこそが「ライブラリ」のことなのです。
1.3.2 選ばれし小さなシステム
ただし、全ての小さなシステム達がライブラリと言うわけではありません。
選ばれし小さなシステムこそがライブラリと呼ばれます。
この小さなシステムの中から、この大きなシステムから切り離して
他のシステムにも使える小さなシステムの事を「ライブラリ」と呼びます。
例えば、上の画像を
あなたが作った「プログラム[赤]」とします。
その中の大きなシステムを
「大きなシステム[赤]」とします。
構成はこんな感じでした。
そして、今度は「プログラム[青]」を作りたいと思います。
このプログラム[青]の中の大きなシステム[青]を作っているときに
前作った、大きなシステム[赤]の「小さなシステムA」の機能が使えそうだな
と、あなたはひらめきました。そしてこの小さなシステムAを大きなシステム[青]に使いまわすことにしました。
上手く使いまわすことができました。
これで作業が一つ減り、少し楽して作ることができました。
この使いまわしができた「小さなシステムA」のこそが
選ばれしシステム「ライブラリ」です。
1.4 ライブラリはなぜあるの
このように使いまわしができるシステムをわざわざ1からまた作るのは、
正直めんどくさいし楽したいところですよね。
それを叶えてくれるのがライブラリです。
そしてこれは、自分が作ったもの以外も使えます。
世の中には便利なものを作れる親切な人がたくさんいます。
そんな人たちが
この作業はめんどくさくない。これがあると便利だろうな。
よし、それ作ろう!みんな、作っておいたから使ってね。
ありがたやぁ・・・。
なので、ありがちな処理は既にライブラリとして誰かが用意してくれています。
1.5 ライブラリ単体では?
- Qライブラリ単体では動きますか?
- A
動きません。
ライブラリは基本的に単体では動きません。
あくまでライブラリはサポート役なので、プログラム(システム)の部品として働きます。醤油はあまりそのまま飲まないですよね。そんな感じです。
2. フレームワークとの違い
2.1 一言でいうと
ライブラリとよく混同してしまうもので「フレームワーク」があります。
ライブラリは部品
フレームワークは枠組み
なんとなくイメージできますでしょうか。
もう少し詳しく説明します。
2.2 詳しく説明
僕は、丸美屋の麻婆豆腐の元が好きです。
「突然なんだ」と思いますよね。
すごく便利なんです。なぜなら、用意するものが豆腐だけでいいんですよ。
豆腐とその元だけでおいしい麻婆豆腐が食べられる。
しかも、ネギを入れたり追加でお肉を入れたり自分好みにアレンジもできます。
つまり、この麻婆豆腐の元こそがフレームワークです。
麻婆豆腐を自分で作ろうとすると、まず調味料でベースを作って、そこに具材を入れて完成ですが、
麻婆豆腐の元があれば、麻婆豆腐の枠組みが出来上がってる状態なので、1から作るより簡単に作れますね。
同じ具材を入れるとしても、自分で作った物の中に入れるのか、枠組みが決まっているもの中に入れるのか。そんな違いです。
なので、役割が似ているようで全然違います。
ニュアンスはすこし違うかもしれませんが、ライブラリとフレームワークの違いをイメージしてもらえたらOKです。
3. ライブラリの例を3つ紹介(Python)
Pythonで使うライブラリの内、3つを簡単にご紹介します。
ライブラリのインストール方法や便利なライブラリの特徴の詳しい事などは別の記事で準備中です。
3.1 : pandas
パンダスと言います。個人的に名前が気にいています。
データ分析をサポートする機能をたくさん持っています。
CSVやExcelファイルの読み込みやデータ加工(列を削除したり足したり空欄を埋めてくれたり)など、いろんなことをやってくれます。
3.2 : random
randomとは、文字通りランダムに乱数を作成してくるライブラリです。
機械学習やじゃんけんなどのランダム性がほしいゲームなどで使用します。
3.3 : Matplotlib
いろんな種類のグラフが描いてくれるライブラリです。データの可視化には欠かせないライブラリの一つです。馴染みのあるグラフから3Dグラフなどもあります。Excelやスクレイピングと相性がいいです。
まとめ
世の中の親切な人が作ってくれた便利な小さなシステム「ライブラリ」。
自分で1から作るのも決して悪くはありませんが、楽できたり効率化できるというのは
プログラミングをする上で重要です。
最近のシステム開発では「複数のライブラリを組み合わせて作る」のは当たり前になっています。
「目的のライブラリを探す・それを使う」これも立派なプログラミングのスキルです。
頻繁に使うものは積極的にライブラリを使用して、作業効率を上げて
ライブラリを使いこなすスキルも上げていきましょう。
今晩は麻婆豆腐を食べようかな・・・。
よりよいPythonライフを!
この記事が少しでも役立ててもらえたらうれしいです。
今回も最後まで読んでいただき、本当にありがとうございました!
コメント