Pythonで正確に何ができますか?Pythonの3つの主要なアプリケーションは次のとおりです。

Pythonの学習を考えている場合、または最近Pythonの学習を開始した場合は、次のことを自問するかもしれません。

「Pythonは正確に何に使用できますか?」

Pythonには非常に多くのアプリケーションがあるため、これは答えるのが難しい質問です。

しかし、時間の経過とともに、Pythonには3つの主要な人気のあるアプリケーションがあることに気づきました。

  • ウェブ開発
  • データサイエンス—機械学習、データ分析、データ視覚化を含む
  • スクリプティング

それぞれについて順番に話しましょう。

ウェブ開発

DjangoFlaskのようなPythonに基づくWebフレームワークは、最近Web開発で非常に人気があります。

これらのWebフレームワークは、Pythonでサーバー側コード(バックエンドコード)を作成するのに役立ちます。これは、ユーザーのデバイスやブラウザーではなく、サーバーで実行されるコードです(フロントエンドコード)。バックエンドコードとフロントエンドコードの違いに慣れていない場合は、以下の脚注を参照してください。

しかし、待ってください、なぜ私はWebフレームワークが必要なのですか?

これは、Webフレームワークによって共通のバックエンドロジックの構築が容易になるためです。これには、さまざまなURLをPythonコードのチャンクにマッピングすること、データベースを処理すること、ユーザーがブラウザーに表示するHTMLファイルを生成することが含まれます。

どのPythonWebフレームワークを使用する必要がありますか?

DjangoとFlaskは、最も人気のあるPythonWebフレームワークの2つです。始めたばかりの場合は、そのうちの1つを使用することをお勧めします。

DjangoとFlaskの違いは何ですか?

Gareth Dwyerによるこのトピックに関する優れた記事があるので、ここで引用させてください。

te>

主な対比:

  • Flaskは、シンプルさ、柔軟性、きめ細かい制御を提供します。それは非ピニオン化されています(それはあなたが物事をどのように実装したいかを決めることを可能にします)。
  • Djangoは、包括的なエクスペリエンスを提供します。管理パネル、データベースインターフェース、ORM [オブジェクトリレーショナルマッピング]、およびアプリとプロジェクトのディレクトリ構造をすぐに利用できます。

あなたはおそらく選ぶべきです:

  • 経験と学習の機会に焦点を合わせている場合、または使用するコンポーネント(使用するデータベースやそれらとの対話方法など)をより細かく制御したい場合は、Flask。
  • Django、最終製品に集中している場合。特に、ニュースサイト、eストア、ブログなどの単純なアプリケーションで作業していて、物事を行うための単一の明白な方法が常に存在することを望んでいる場合は特にそうです。

te>

言い換えれば、初心者の場合は、処理するコンポーネントが少ないため、Flaskの方がおそらく適しています。また、より多くのカスタマイズが必要な場合は、Flaskの方が適しています。

一方、簡単なものを作成したい場合は、Djangoを使用するとおそらくより早くそこにたどり着くことができます。

さて、Djangoを学びたいのなら、Django forBeginnersという本をお勧めします。ここで見つけることができます。

その本の無料サンプルの章もここにあります。

さて、次のトピックに行きましょう!

データサイエンス—機械学習、データ分析、データ視覚化を含む

まず、機械学習とは何かを確認しましょう。

機械学習とは何かを説明する最良の方法は、簡単な例を示すことだと思います。

写真の内容を自動的に検出するプログラムを開発したいとします。

したがって、下のこの画像(画像1)を考えると、プログラムにそれが犬であることを認識させる必要があります。

Original text


以下のもう1つ(写真2)を考えると、プログラムにそれがテーブルであることを認識させたいと思います。

あなたは、まあ、私はそれをするためにいくつかのコードを書くことができると言うかもしれません。たとえば、写真に薄茶色のピクセルがたくさんある場合は、犬であると言えます。

または、画像のエッジを検出する方法を理解できるかもしれません。次に、直定規が多い場合はテーブルだと言うかもしれません。

ただし、この種のアプローチはすぐに注意が必要になります。写真に茶色の髪のない白い犬がいる場合はどうなりますか?写真がテーブルの丸い部分だけを示している場合はどうなりますか?

これが機械学習の出番です。

機械学習は通常、指定された入力のパターンを自動的に検出するアルゴリズムを実装します。

たとえば、犬の写真1,000枚とテーブルの写真1,000枚を機械学習アルゴリズムに与えることができます。次に、犬とテーブルの違いを学びます。犬かテーブルのどちらかの新しい写真を与えると、それがどちらであるかを認識できるようになります。

これは、赤ちゃんが新しいことを学ぶ方法と少し似ていると思います。赤ちゃんは、あるものが犬のように見え、別のものがテーブルのように見えることをどのようにして学びますか?おそらくたくさんの例から。

あなたはおそらく赤ちゃんに「何かが毛皮で薄茶色の髪をしているなら、それはおそらく犬だ」とはっきりとは言わないでしょう。

あなたはおそらく、「それは犬です。これも犬です。そしてこれはテーブルです。それもテーブルです。」

機械学習アルゴリズムはほとんど同じように機能します。

同じアイデアを以下に適用できます。

  • レコメンデーションシステム(YouTube、Amazon、Netflixを考えてください)
  • 顔認識
  • 音声認識

他のアプリケーションの中で。

あなたが聞いたことがあるかもしれない人気のある機械学習アルゴリズムは次のとおりです。

  • ニューラルネットワーク
  • ディープラーニング
  • サポートベクターマシン
  • ランダムフォレスト

上記のアルゴリズムのいずれかを使用して、前に説明した画像のラベル付けの問題を解決できます。

機械学習用のPython

Pythonには人気のある機械学習ライブラリとフレームワークがあります。

最も人気のあるものの2つは、scikit-learnTensorFlowです。

  • scikit-learnには、より一般的な機械学習アルゴリズムがいくつか組み込まれています。私はそれらのいくつかを上で述べました。
  • TensorFlowは、カスタムの機械学習アルゴリズムを構築できる低レベルのライブラリです。

機械学習プロジェクトを始めたばかりの場合は、最初にscikit-learnから始めることをお勧めします。効率の問題が発生し始めたら、TensorFlowを調べ始めます。

機械学習はどのように学ぶべきですか?

機械学習の基礎を学ぶには、スタンフォード大学またはカリフォルニア工科大学の機械学習コースをお勧めします。

これらのコースのいくつかの資料を理解するには、微積分と線形代数の基本的な知識が必要であることに注意してください。

次に、これらのコースの1つから学んだことをKaggleで練習します。これは、特定の問題に最適な機械学習アルゴリズムを構築するために人々が競うWebサイトです。初心者向けの素晴らしいチュートリアルもあります。

データ分析とデータ視覚化はどうですか?

これらがどのように見えるかを理解しやすくするために、ここで簡単な例を示します。

いくつかの製品をオンラインで販売している会社で働いているとしましょう。

次に、データアナリストとして、このような棒グラフを描くことができます。

このグラフから、この特定の日曜日に男性がこの製品を400ユニット以上購入し、女性がこの製品を約350ユニット購入したことがわかります。

データアナリストとして、この違いについて考えられるいくつかの説明を思い付くかもしれません。

明らかな説明の1つは、この製品が女性よりも男性に人気があるということです。別の考えられる説明は、サンプルサイズが小さすぎて、この違いが偶然に引き起こされたということかもしれません。そして、さらに別の考えられる説明は、男性が何らかの理由で日曜日にのみこの製品を購入する傾向があるということかもしれません。

これらの説明のどれが正しいかを理解するために、このような別のグラフを描くことができます。

日曜日のみのデータを表示する代わりに、丸1週間のデータを表示しています。ご覧のとおり、このグラフから、この違いはさまざまな日にわたってかなり一貫していることがわかります。

この小さな分析から、この違いの最も説得力のある説明は、この製品が女性よりも男性に人気があるということであると結論付けるかもしれません。

一方、代わりにこのようなグラフが表示された場合はどうなりますか?

では、日曜日の違いを説明するものは何ですか?

おそらく男性は、何らかの理由で日曜日にのみこの商品を購入する傾向があると言うかもしれません。あるいは、日曜日に男性がそれをもっと購入したのは偶然だったのかもしれません。

したがって、これは、データ分析が現実の世界でどのように見えるかを示す簡単な例です。

私がGoogleとMicrosoftで働いていたときに行ったデータ分析作業は、この例と非常に似ていましたが、より複雑でした。私は実際にこの種の分析にGoogleでPythonを使用しましたが、MicrosoftではJavaScriptを使用しました。

私は両方の会社でSQLを使用して、データベースからデータを取得しました。次に、PythonとMatplotlib(Googleの場合)またはJavaScriptとD3.js(Microsoftの場合)のいずれかを使用して、このデータを視覚化および分析します。

Pythonによるデータ分析/視覚化

データ視覚化のための最も人気のあるライブラリの1つはMatplotlibです。

次の理由から、始めるのに適したライブラリです。

  • 始めるのは簡単です
  • seabornなどの他のいくつかのライブラリはそれに基づいています。したがって、Matplotlibを学習すると、後でこれらの他のライブラリを学習するのに役立ちます。

Pythonでデータ分析/視覚化をどのように学ぶべきですか?

まず、データ分析と視覚化の基礎を学ぶ必要があります。このオンラインで良いリソースを探したところ、何も見つかりませんでした。それで、私はこのトピックに関するYouTubeビデオを作ることになりました:

また、Pluralsightでこのトピックに関するフルコースを作成しました。このコースは、10日間の無料トライアルにサインアップすることで無料で受講できます。

両方をお勧めします。

データ分析と視覚化の基礎を学んだ後、CourseraやKhanAcademyなどのWebサイトから統計の基礎を学ぶことも役立ちます。

スクリプティング

スクリプトとは何ですか?

スクリプトは通常、単純なタスクを自動化するように設計された小さなプログラムを作成することを指します。

それで、ここで私の個人的な経験から例を挙げましょう。

私は以前、メールサポートシステムを持っていた日本の小さなスタートアップで働いていました。お客様からメールで寄せられた質問に答えるシステムでした。

そこで働いていたとき、受信したメールを分析できるように、特定のキーワードを含むメールの数を数える作業がありました。

手動で行うこともできましたが、代わりに、このタスクを自動化するための簡単なプログラム/簡単なスクリプトを作成しました。

実際、当時はRubyを使用していましたが、Pythonもこの種のタスクに適した言語です。Pythonは、構文が比較的単純で、記述が簡単であるため、このタイプのタスクに適しています。また、小さなものを書いてテストするのも簡単です。

組み込みアプリケーションはどうですか?

私は組み込みアプリケーションの専門家ではありませんが、PythonがRasberryPiで動作することは知っています。ハードウェア愛好家の間で人気のあるアプリケーションのようです。

ゲームはどうですか?

PyGameというライブラリを使用してゲームを開発することもできますが、これは世の中で最も人気のあるゲームエンジンではありません。趣味のプロジェクトを作るのに使うこともできますが、ゲーム開発を真剣に考えているのなら、個人的には選びません。

むしろ、最も人気のあるゲームエンジンの1つであるC#でUnityを使い始めることをお勧めします。Mac、Windows、iOS、Androidなどの多くのプラットフォーム向けのゲームを構築できます。

デスクトップアプリケーションはどうですか?

Tkinterを使用してPythonで作成することもできますが、最も人気のある選択肢ではないようです。

代わりに、Java、C#、C ++などの言語の方が人気があるようです。

最近、一部の企業もJavaScriptを使用してデスクトップアプリケーションを作成し始めています。

たとえば、SlackのデスクトップアプリはElectronと呼ばれるもので構築されました。JavaScriptを使用してデスクトップアプリケーションを構築できます。

個人的には、デスクトップアプリケーションを構築する場合は、JavaScriptオプションを使用します。持っている場合は、Webバージョンのコードの一部を再利用できます。

ただし、私もデスクトップアプリケーションの専門家ではないので、同意できない場合はコメントでお知らせください。

Python3またはPython2?

Python 3はより現代的であり、現時点ではより人気のあるオプションであるため、Python3をお勧めします。

脚注:バックエンドコードとフロントエンドコードに関する注記(用語に精通していない場合に備えて):

Instagramのようなものを作りたいとしましょう。

次に、サポートするデバイスの種類ごとにフロントエンドコードを作成する必要があります。

たとえば、次のように使用できます。

  • iOS用Swift
  • Android用Java
  • Webブラウザ用のJavaScript

コードの各セットは、各タイプのデバイス/ブラウザーで実行されます。これは、アプリのレイアウトがどのようになるか、ボタンをクリックしたときにボタンがどのように表示されるかなどを決定する一連のコードになります。

ただし、ユーザーの情報と写真を保存する機能は引き続き必要です。各ユーザーのフォロワーが自分の写真を表示できるように、ユーザーのデバイスだけでなくサーバーにも保存することをお勧めします。

これがバックエンドコード/サーバーサイドコードの出番です。次のようなことを行うには、バックエンドコードを作成する必要があります。

  • 誰が誰をフォローしているかを追跡する
  • 写真を圧縮して、ストレージスペースをあまり消費しないようにします
  • 検出機能で各ユーザーに写真と新しいアカウントを推奨する

つまり、これがバックエンドコードとフロントエンドコードの違いです。

ちなみに、バックエンド/サーバーサイドコードを書くのに良い選択はPythonだけではありません。JavaScriptに基づくNode.jsなど、他にも多くの人気のある選択肢があります。

この記事が気に入りましたか?それなら、私のYouTubeチャンネルも気に入っていただけると思います。

私はCSDojoというプログラミング教育YouTubeチャンネルを持っており、チャンネル登録者数は44万人を超えています。ここでは、この記事のようなコンテンツをさらに制作しています。

たとえば、次の動画が好きかもしれません。

とにかく、私の記事を読んでくれてありがとう!