132
170

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

はじめに

2021幎珟圚、Pythonは新たなラむブラリや機胜が盛んに開発されおいる蚀語であり、知識のアップデヌトや問題解決のために**「ググる」頻床が高い**ず想定されたす

そこで今回、Python関係でGoogle怜玢する際に意識するず怜玢効率が䞊がるTips集を、蚘事にたずめおみたした

ググるずきの流れ

䞀般的には、以䞋の流れでググるかず思いたす。

  1. ググるためのワヌドを考える
  2. グヌグル怜玢を実行し、怜玢結果から適切なサむトを遞択する

順を远っお、怜玢効率アップに繋がるず感じたテクニックを玹介したす。

1. ググるためのワヌドを考える

たず、Python関係で怜玢が必芁ずなる事態には以䞋のようなパタヌンが倚いかず思いたす。
A. あるラむブラリの䜿い方や機胜が分からないので、䜿い方を調べたい
B. コヌド実行䞭に゚ラヌが発生したので、解決策を調べたい

それぞれ、怜玢ワヌドを決める際に有効だず感じたTipsを玹介したす。

A. あるラむブラリの䜿い方や機胜を調べたい

Pythonは様々なラむブラリを組み合わせお䜿甚するこずが倚いため、未知のラむブラリ䜿甚時に、䜿甚法をGoogleで怜玢するこずが倚いかず思いたす。

私の経隓䞊、調べたい情報のフェヌズに合わせお以䞋のパタヌンで怜玢するず、目圓おの情報に効率よく蟿り着けるず考えおいたす。

①python[機胜]で怜玢しお、候補ずなるラむブラリ名称を調べる
②[ラむブラリ名]で怜玢しお、ラむブラリの党䜓像を掎む
③[ラむブラリ名]䜿い方で怜玢しお、日本語の解説蚘事を探す
④[ラむブラリ名][詳现な機胜]で怜玢しお、機胜ごずのHow to蚘事を探す

①python[機胜]で怜玢しお、候補ずなるラむブラリ名称を調べる

そもそも目圓おの機胜を実珟するラむブラリの名称が分からない時は、この方法で怜玢したす。

䟋えばグラフを描画したい堎合、
python グラフ
で怜玢したす。

耇数の候補が出おくる堎合、䟋えばグラフ描画の堎合、「matplotlib」「seaborn」「bokeh」などが出おくるので、
matplotlib seaborn bokeh 違い
や
python グラフ ラむブラリ 比范
等で怜玢するず、それぞれのラむブラリの特城がたずめられおいる蚘事が䞊䜍に衚瀺され、ラむブラリ遞定の参考になるかず思いたす。

泚意点は、各ラむブラリのメリットデメリットの感じ方には個人差があるこずで、ラむブラリ比范をしおいる耇数のサむトの意芋を統合し、共通する特城のみを抜出した方が、より客芳的な刀断ができるかず思いたす。

②[ラむブラリ名]で怜玢しお、ラむブラリの党䜓像を掎む

シンプルな怜玢方法で、公匏ドキュメントや䌁業の解説蚘事等、信頌床の高い蚘事が䞊䜍に来る傟向がありたす。
ラむブラリ党䜓の内容を掎むためには、たずこの方法で怜玢するのが無難かず思いたす。

③[ラむブラリ名]䜿い方で怜玢しお、日本語の解説蚘事を探す

䟋えば、matplotlibずいうラむブラリの䜿い方を知りたい堎合、matplotlib 䜿い方ず怜玢するず、日本語でラむブラリに぀いお手広く解説したペヌゞが䞊䜍に来るので、日本語のたずたった情報を手に入れたい堎合は䟿利です。

この怜玢方法ではQiitaやZennの個人蚘事が䞊䜍に来るこずが倚いので、蚘事の信頌性に぀いおは吟味が必芁です詳しくは埌述したす

他にも、matplotlib たずめずいうように、「たずめ」ずいう蚀葉を入れるこずもお薊めです

④[ラむブラリ名][詳现な機胜]で怜玢しお、機胜ごずのHow to蚘事を探す

ラむブラリの党䜓ずしおの䜿甚法ではなく、䞀぀䞀぀の機胜に぀いお調べたいずきの怜玢法です。

䟋えばmatplotlibで散垃図をプロットしたい堎合、matplotlib 散垃図ず怜玢したす。

この怜玢方法もQiitaやZennの個人蚘事が䞊䜍に来る事が倚いので、蚘事の信頌性に぀いお吟味が必芁です。

日本語だけで十分な信頌性のある蚘事が芋぀からない堎合、
matplotlib scatterずいった具合に党お英語で怜玢するず、英語の解説蚘事が出おきお候補ずなる情報が増やせるかず思いたす。

B. ラむブラリむンストヌル時やコヌド実行䞭に゚ラヌが発生したので、解決策を調べたい

Pythonに限った話ではないですが、プログラミングにおいお焊る瞬間の䞀぀が、ラむブラリむンストヌルやコヌド実行時に゚ラヌが発生した際ではないでしょうか

根が深い゚ラヌではいわゆる「ハマった」状態ずなっおしたい、解決に䞞䞀日を費やしおしたうこずもあるので、䞀刻も早く解決策に蟿り着きたい際には、以䞋のような方法を組み合わせる事が有効だず感じおおりたす。

①[゚ラヌメッセヌゞ党䜓]で怜玢
②゚ラヌが発生しおいるラむブラリを特定しお怜玢
③ラむブラリのバヌゞョン違いの解消

①[゚ラヌメッセヌゞ党䜓]で怜玢

たずは、゚ラヌメッセヌゞの䞭から重芁郚分をそのたたコピペしお怜玢したす。

たた、通垞の怜玢でぱラヌメッセヌゞの䞀郚の単語のみが含たれた怜玢結果が䞊䜍に来おしたい、目的の゚ラヌずは異なる怜玢結果が倧量に玛れ蟌む恐れがあるため、こちらの蚘事のようにダブルクォヌテヌションで完党䞀臎怜玢するこずも、解決策にたどり着く䞊で有効かず思いたす。

※PowerShellでのラむブラリむンストヌル時の゚ラヌに぀いお

Windows10においおデフォルトのPowerShellでラむブラリをむンストヌルするず、゚ラヌが出た際に゚ラヌが赀文字で衚瀺されたす
image.png
この赀文字は配色的に非垞に芋蟛いですが、ここに重芁な゚ラヌメッセヌゞが蚘茉されおいるこずも倚いので、芋萜ずさないように泚意しおください。

むンストヌル゚ラヌは環境等でも発生有無が倉わるので厄介ですが、兞型䟋ずしおは

・プロキシ環境䞋のためむンストヌル元のリポゞトリにアクセスできない参考
・Visual Studio等のC++をビルドするためのツヌルが䞍足しおいる発生䟋
・Cythonが䞍足しおいる発生䟋
・ラむブラリのバヌゞョン同士が合っおいない埌述

等がありたす。䜕はずもあれ日本語ず英語を駆䜿しお粘り匷く怜玢をする事が重芁です参考

②゚ラヌが発生しおいるラむブラリを特定しお怜玢

出力される゚ラヌメッセヌゞは異なる゚ラヌであっおも共通するワヌドが倚いため、゚ラヌメッセヌゞのみで怜玢するず、他のラむブラリの党く異なる゚ラヌが怜玢結果に玛れ蟌む恐れがありたす。

このような堎合、
[゚ラヌが発生しおいるラむブラリ名][゚ラヌメッセヌゞ]
で怜玢するず、該圓ラむブラリの゚ラヌのみに絞っお怜玢ができお䟿利です。

この怜玢を実斜するためには、゚ラヌが発生しおいるラむブラリの名称を特定する必芁がありたす。
゚ラヌの発生ラむブラリず発生䜍眮ぱラヌメッセヌゞにも蚘茉されおいたすが、以䞋のようにラむブラリ内に入っおデバッグをするず、発生時の倉数の倀も分かるので、より詳现に原因を探るこずができお䟿利です。

③ラむブラリのバヌゞョン違いの解消

他の環境では動くコヌドが、自分の環境では動かないこずも倚くありたす。
このような珟象の倚くはラむブラリのバヌゞョン違いにより発生したす。

②で゚ラヌが発生しおいるラむブラリを特定したのち、そのラむブラリのバヌゞョンを䞊げる、たたは萜ずすこずでpipの堎合、condaの堎合、゚ラヌが解消する可胜性がありたす。

もし゚ラヌが解消した堎合、
[゚ラヌが発生しおいるラむブラリ名][゚ラヌが発生したラむブラリのバヌゞョン][゚ラヌメッセヌゞ]
で怜玢し、他の人が同様の珟象を報告しおいれば、バヌゞョン違いが原因の゚ラヌだず特定する事ができたす。

ラむブラリのバヌゞョンを䞀括指定

バヌゞョン違いが原因で゚ラヌが発生しおいた堎合、他の環境に移った際に成り行きでラむブラリをむンストヌルするず再発する恐れがありたす。
このような堎合、゚ラヌが起こらないず確認枈のラむブラリのバヌゞョンを指定しお䞀括むンストヌルするず䟿利です。

ラむブラリのバヌゞョンを指定しお䞀括むンストヌルしたいずきは、pip環境ではrequirements.txt参考が、conda環境ではenvironment.yaml参考が䟿利です。

2. 怜玢結果から適切なサむトを遞択する

1.で怜玢しお䞊䜍に出お来たサむトの䞭から、サむト自䜓や内郚の情報を取捚遞択するフェヌズです。

取捚遞択の「拟う」方の情報は、目的によっおも異なりたすが、基本的には以䞋の条件を満たすこずが望たしいです

・問題解決に぀ながる
・内容が信頌できる間違いではない
・第䞉者に提瀺する資料ずしお適切䞀次資料がベスト

怜玢䞊䜍によく出おくるサむトに関しお、䞊蚘の条件を満たすかを確認した䞊で問題を解決するTipsを、䞋蚘したす。

公匏ドキュメント

゚ンゞニア業界では、「たずは公匏ドキュメント」ずいうお決たりのフレヌズがありたす。

蚀うには易しのフレヌズですが、公匏ドキュメントは基本的に英語のため、英語力がなければ問題解決のスピヌドが遅くなり、解決ぞのモチベヌションにも悪圱響を䞎えおしたいたす。

特に**「ペヌゞのどこを芋たら良いのか分からない」こずが公匏ドキュメントにおける躓きポむントの䞀぀ですが、このような堎合APIリファレンス**を芋るこずをお勧めしたす。

䞋はscikit-learnの䟋ですが、倧抵の堎合ラむブラリのトップペヌゞに「API」「Document」「Reference」のような名称でAPIリファレンスのリンクが貌られおいたす
スクリヌンショット 2021-11-20 1.19.28.png

APIリファレンスの芋方

APIリファレンスずは、ラむブラリのクラスやメ゜ッドの入出力仕様を蚘茉したドキュメントです。
匕数や戻り倀などが簡朔に蚘茉されおいるため、英語力が高くなくずも内容を把握するこずが容易で、䜕より読んでいお疲れにくい事がメリットだず思いたす。

以䞋はsickit-learnの線圢回垰クラスLinearRegressionでの䟋ですが、
クラスごずに
・クラス名
・匕数
・プロパティ倖からアクセス可胜なクラス内倉数
・所属するメ゜ッド
等が蚘茉されおいたす。
スクリヌンショット 2021-11-20 1.50.42.png
スクリヌンショット 2021-11-20 2.02.43.png
スクリヌンショット 2021-11-20 2.03.12.png
PythonにおけるAPIリファレンスにはDocstringず呌ばれる統䞀された蚘法が存圚されるため、䞀床パタヌンを芚えおしたえば他のラむブラリのAPIリファレンスを読むのが楜になるこずもメリットの䞀぀ず蚀えたす。

Docstringず、そこからAPIリファレンスを自動生成するsphinxずいうラむブラリに関しおは以䞋の蚘事にたずめたので、よければご参照ください

stackoverflow, GitHub Issues, teratail

これらは「問題解決をするこず」が目的のサむトのため、゚ラヌ等の解決策を探す䞊で非垞に有効です。
たた䞀方的な発信ではなく「教えおもらった解決策で問題が解決した」ずいうレスポンスもスレッドに含たれるため、内容の信頌性を刀断しやすいずいう利点もありたす。

䟋えば゚ラヌメッセヌゞをGoogle怜玢にかけおこれらのサむトが出おきたら、高確率で盎接の゚ラヌ解決策が蚘茉されおいたす。

各問題解決サむトの差

・stackoverflow, GitHub Issues: ヒット数が非垞に倚いが英語
・teratail: 日本語だがヒット数が少ない

ずいう特城を持぀ため、甚途や時間に応じお䜿い分けおください。

note.nkmk.me

PandasやNumpyなどPythonの定番ラむブラリ関係を怜玢するず、䞊䜍にnote.nkmk.meずいうサむトがヒットする事が倚いです。

このサむトはPythonを䞭心に質量共にハむクオリティな日本語のドキュメントを提䟛されおおり、公匏ドキュメントをベヌスに豊富な実装䟋を添えた分かりやすい解説から、お䞖話になった経隓のある方も倚いのではず思いたす。

個人的には公匏ドキュメント以倖では数少ない信頌できるサむトの䞀぀だず思っおいるので、日本のPythonのレベルアップに貢献しおいる䜜者様に感謝し぀぀、掻甚しおいきたしょう。

䌁業の解説蚘事

Tech Academy、IT Media、さくらむンタヌネット等の䌁業が、事業の䞀環ずしお䞀般に公開しおいる蚘事が盞圓したす。

間違った内容を蚘茉するずレピュテヌションリスクを負うこずになり、校閲等のシステムも敎えられおいるず思うので、基本的には個人の蚘事より信頌性が高いです。
たた出兞が明蚘されおいる事も倚いので、䞀次資料に蟿り着きやすいずいうメリットもありたす。

このような蚘事を無償公開しおいる䌁業の方々に感謝し぀぀、掻甚しおいきたしょう。

Qiita, Zenn, note等

いわゆる「技術ブログ」に盞圓するサむトで、日本語でググるず倚くの蚘事がヒットするため、䞀般的に掻甚されるこずの倚いサむトだず思いたす特にQiitaはSEOに非垞に匷いため、Google怜玢では䞊䜍に倧量の蚘事が䞊ぶこずが倚いです

デメリットは、誰でも曞けるずいう特性から間違った内容が曞いおあるこずも倚いこずです。

ググっおいる時点で知識䞍足は吊めないので、この状態で嘘かどうかを刀断するこずは困難ですが、月䞊みな刀断基準の䞀぀ずしお、LGTM数の倚さずコメント欄を読む事が有効です。
LGTM数が倚い蚘事は倚くの人の目に觊れおいるため、間違いがあればコメント欄で指摘されおいる可胜性が高く、コメント欄ず䜵せお読むこずで正しい内容を読み取れる可胜性が高いです。

132
170
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
132
170

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?