2万4000超の開発者に聞いた、Pythonでよく使うフレームワークは? | マイナビニュース
https://www.jetbrains.com/lp/python-developers-survey-2019/
を読んで調べたこと。
- Python Developers Survey 2019 Results
- Stack Overflow trend検索
- Stack Overflow 質問数
- Google トレンド
- 調べてみた結果を受けて
Python Developers Survey 2019 Results
これは「Python Software FoundationがJetBrainsを使用して実施したPython開発者調査の報告書」らしい。
その中で、各種ライブラリを使っている人の割合(複数回答)が掲載されている。
興味があるデータサイエンス系のフレームワークを見てみよう。ディープラーニングのフレームワークは、俺が全然使っていないので、下記の結果一覧から除外した。
正確を期すためにもとのデータを見ると、質問文は「What data science framework(s) do you use in addition to Python?」である。
- Numpy 63%
- Pandas 55%
- Matplotlib 46%
- Scipy 36%
- SciKit-Learn 33%
- Seaborn 17%
まぁ妥当だろう。個人的にはScipyを使うことがあまり多くないので、Scipyってこんなに多いの?と思うけど。
では、他の調査も見てみよう。
Stack Overflow trend検索
Stack Overflowの公式ブログで、Pythonの人気が上昇していることを取り上げた記事がある。 以下に示す2つの記事がそうだ。いずれも2017年に書かれたものである。
このうち1つ目の記事では、高所得の国ではpythonの質問の閲覧数が大きく増えていることが述べられている。 2つ目の記事では、pythonのライブラリ群に焦点を当てていて、pandasが特に急激に成長している事がわかる。(Stack Overflowの中で、該当タグの質問へのトラフィック量を調べたもの)
The Incredible Growth of Python | Stack Overflow
Why is Python Growing So Quickly? - Stack Overflow Blog
だがこれは2017年なので、改めて最新の結果を見てみよう。
まず、言語どうしを比較してみよう。Stack Overflow Trendsの機能を使って、10個の言語を比較するとこのようになる。 (こちらは月間に投稿された質問のうち、該当するタグが含まれている割合を示す)
すごい。
2017年最初には8%くらいだったけど、その後も急激に上がり続けて、JavaScriptを抜いて1位となり、2020年には14〜15%になっている。人気を集めすぎやろ。
次に、pythonの各ライブラリについて同様にグラフを作った。
1位のpandasが2.4%程度で、2位のnumpyが0.8%程度である。2位の約3倍も質問されているpandasの一人勝ちと言ってよいだろう。
「Python Developers Survey」では1位がnumpy、少しの差で2位がpandasであった。両者で違う傾向になっている。
Stack Overflow 質問数
次に、Stack Overflowで各ライブラリのタグが付いた質問の数を調べた。(これはある月間ではなく、今までの累計で質問された数である)
ついでにそれらの質問の中で、最も多いvoteの数も調べた。
Highest Voted 'pandas' Questions - Stack Overflow など
- pandas: 質問数149000、最多vote1909
- numpy: 質問数74000, 最多vote577
- matplotlib: 質問数47000, 最多vote1978
- scikit-learn: 質問数19000, 最多vote213
- scipy: 質問数16000, 最多vote406
- seaborn: 質問数4700, 最多vote206
こちらもpandasの一強といって良さそうだ。2位のnumpyの約2倍の質問数だ。
個人的にはきれいな図が書けるseabornが好きなんだけど、質問数が少ないですね、人気がないのかなぁ……ちょっと残念。
Google トレンド
最後にGoogleトレンドを見てみよう。日本からの最近12ヶ月で検索された量を調べると以下のようになった。
(これは静的データであり、更新されない)
- pandas: 81
- numpy: 58
- matplotlib: 34
- scikit-learn: 22
- seaborn: 5
(seabornのみ「トピック」が選択できなかったので「検索キーワード」で検索した。また5つまでしか選択できなかったのでscipyを除外した)
ちなみに日本からではなく、全世界に切り替えると、以下のようになった。
- pandas: 87
- numpy: 42
- matplotlib: 25
- scikit-learn: 20
- seaborn: 8
pandasがnumpyにダブルスコアになった。日本と比べて、世界ではpandasが大人気なのか……?
調べてみた結果を受けて
Python Software Foundationの調査は「使っているか、使っていないか」というアンケートである。 したがって、Stack Overflowに質問を投稿したり、Googleで検索するのとは違った傾向になるだろう。
scikit-learnが、使用率が高いのに、Stack Overflowの質問数やGoogleトレンドだとかなり低いのは何でだろうか。
一つ考えられる仮説は、使う頻度が違うのかなー。
個人的には、pandas, numpyは頻繁に使うけど、scikit-learnはたまにしか使わない。
したがって、使うか使わないかのアンケートに答えるとしたら全て「使う」と回答するけど、
Stack Overflowを見に行く頻度はpandasやnumpyのほうが絶対に多い。
多くのユーザーが同様に、pandasやnumpyの頻度が高くscikit-learnの頻度が低いようなら、上記で見てきた結果と整合する。
もう一つ考えられる仮説は、どれだけみんなが「使い方分からん……検索しよう/人に質問しよう」と思うか、が違うということ。 つまり使う頻度じゃなくて、書いてて詰まる頻度のほうね。 scikit-learnの使い方は比較的統一されていて、基本的にはfitしてpredictしちゃえば良い(注:かなり乱暴な話だが)。 使い方がわからなくてStack Overflowに聞いたりGoogleで検索したりすることが少ない、ということかね。 ……だとすると、pandasはStack OVerflowやGoogleトレンドだと値が大きいから、みんなが「うーん、分からん」と思ってるってことだろうか?
今後自分がどの辺の記事を書けば良いのかな―と思っていたけど、人に来てもらおうと思ったらpandasで書くのが良さそうだ。
それでは。