Pythonは、AI・機械学習など、さまざまな開発に用いられるプログラミング言語です。Pythonでこれからシステム開発を検討している人の中には、具体的にどのような開発ができるのか知っておきたいという方もいるのではないでしょうか。
INDEX
Pythonでできること:AI・データ分析分野に最適
Pythonでできることを一目で理解するために、まずは下記の表をご覧ください。
Pythonでできること | 使用頻度 |
---|---|
機械学習・AI(画像処理・音声処理・自然言語処理) | ◎ |
Webアプリケーション開発 | 〇 |
ブロックチェーン開発 | ◎ |
Excelの自動化 | 〇 |
Web上の情報収集(スクレイピング) | ◎ |
データ分析・可視化 | ◎ |
ゲーム開発 | △ |
スマホアプリ開発 | △ |
デスクトップアプリ開発 | △ |
上記は大まかな傾向値としてまとめましたが、このようにPythonができることは多く、できることによって使用頻度も変化します。特に、PythonはAIやデータ分析を得意とするプログラミング言語です。
\文字より動画で学びたいあなたへ/
Udemyで講座を探す >AI開発以外でPythonにできることは?
次に、Pythonができることについて詳しく解説します。
機械学習・AI(画像処理・音声処理・自然言語処理)
Pythonは機械学習やAI(人工知能)の開発にも多く用いられています。
Pythonで開発ができるAIとは?
AI(人工知能)とは、人間の知能と同じ特徴を持つコンピュータのことですが、明確な定義はありません。現在では、人間のように「賢い」処理を行っているシステムを指してAIと呼ぶことが多くなっています。
AIについて、詳しくは「人工知能(AI)とは?具体例付きでわかりやすく簡単に解説!」をご覧ください。
Pythonで開発ができる機械学習とは?
機械学習とは、AIを実現する手段のひとつです。
従来のコンピュータでは、データを分類するアルゴリズムを人間があらかじめプログラムしてから、その後、与えられるデータの処理をコンピュータに任せます。一方、機械学習では、コンピュータが大量のデータを学習し、その中から法則やルールを見つけて、新しいデータを得たときの判断基準となる「アルゴリズム」を自動で構築します。
機械学習について詳しく知りたい方は「【機械学習とは?】種類別に簡単にわかりやすく紹介!ディープラーニングとの違いやDQNについても解説!」をご覧ください。
Pythonが機械学習・AI開発になぜ向いているのか?
AI開発には複雑な処理が必要です。Pythonには、「NumPy(ナンパイ)」と呼ばれる科学計算用のライブラリや、「Scikit-Learn(サイキット・ラーン)」と呼ばれる機械学習用のライブラリなど、AIの開発に適したライブラリが充実しています。このようなライブラリの豊富さが、ほかのプログラミング言語よりもPythonが好まれて使用される理由のひとつです。
AIの技術は、農業や医療などの分野にも利用されています。例えば農業であれば、大量のセンサーの情報を分析して、作物の生長予測を行い、最適な条件で生産を行うといった利用が可能です。 AIの技術は、今後もさまざまな分野活用されるため、AIエンジニアが必要とされています。
Pythonは音声や情報分析が得意
Pythonを使った機械学習では、画像やテキスト、音声などあらゆる情報を認識・分析することもできます。具体的には、深層学習(ディープラーニング)を用いて、画像に写っているものや、音声で話されている言語などの認識・分析が行われています。
深層学習(ディープラーニング)とは、機械学習の手法のひとつで、人間の神経構造を模倣した「ニューラルネットワーク」を何層も重ねることで、コンピュータ自身に学習をさせて、人工知能を生成する技術です。人間でいうところの「常識」を、コンピュータに身に付けさせることに似ています。
ディープラーニングについて詳しく知りたい方は、「【機械学習とは?】種類別に簡単にわかりやすく紹介!ディープラーニングとの違いやDQNについても解説!」をご覧ください。
このディープラーニングの技術で学習した情報を使って、認識処理が行われています。
例えば、スマートフォンの翻訳機能で入力した音声やテキストを解析するためには、「自然言語処理」が用いられています。人間が普段、読み書きする言葉は、コンピュータにとって曖昧な情報が多く、理解しづらいものです。この曖昧性のある言葉をコンピュータが処理しやすい情報にしていくことを自然言語処理といいます。
自然言語処理について、詳しくは「自然言語処理とは?スマートスピーカーにも使われている技術をわかりやすく解説!」をご覧ください。
自然言語処理のほかに、多くの場面で利用されるのが、画像処理です。写真などの画像から、「どのような場面を表したデータなのか」「画像に写っている物体はオレンジなのか、リンゴなのか」など、画像情報を解析するために使われています。現在では、病気の発見や、監視カメラ映像の解析などの分野に利用されています。
Webアプリケーション開発
Pythonは、Webアプリケーション、Android端末用スマートフォンアプリ、PC向けのデスクトップアプリなど、さまざまなアプリケーション開発に用いられています。その中でも、WebサイトやWebアプリは、特に使用される機会が多いといえます。
Pythonが使用されている身近なWebサービス事例には、以下のようなものがあります。
- YouTube
- Dropbox
Webサイト開発について、もう少し詳しくご紹介します。Webサイト開発は、一般的に「フロントエンド」と「バックエンド」という部分に分かれています。
「フロントエンド」とは、ユーザーが目にする画面の見栄えなどのことを指します。「バックエンド」とは、ユーザーの目に触れることのない、サーバーの中で行われる裏側の処理のことを言います。このうち、Pythonが用いられるのは、バックエンドの部分になります。
なお、フロントエンド、バックエンドについて、詳しくは「フロントエンドとバックエンドの違いとは?Webエンジニアの将来性や年収についてご紹介!」をご覧ください。
Webアプリの開発を、ゼロからプログラムを作成する「フルスクラッチ」で行うと、プログラム量が増大するうえ、不具合が起こった場合の解決が難しくなる可能性があります。そのため、Pythonを含むほとんどのプログラミング言語では、フレームワークと呼ばれる「ひな形」を使用するのが一般的です。
Pythonのフレームワークでは、大規模なアプリ開発にはDjango(ジャンゴ)、小規模なアプリにはFlask(フラスク)と呼ばれるものが頻繁に使用されています。
Djangoについて、詳しくは「Django(ジャンゴ)とは?Pythonのフレームワークを活用し、Web開発に役立てよう」をご覧ください。
また、Flaskについては、「【Flask入門】Python初心者でもわかるフレームワークを解説!」をご覧ください。
ブロックチェーン開発
Pythonはブロックチェーン開発にも利用されています。ビットコインなどの話題において、ブロックチェーンという言葉を耳にした人も多いのではないでしょうか。
ブロックチェーンとは、ネットワークに接続された複数のコンピュータが、お互いにデータを共有しチェックしあうことで、データが不正に改ざんされることや、不正にアクセスされることを防ぐ技術です。これにより、データの透明性を保って記録することができます。
ブロックチェーン技術は、仮想通貨だけでなく、医療や物流など、情報の信頼性が求められる場面で活用されています。
Pythonには、ブロックチェーン技術に必須である「ハッシュ」のライブラリ「hashlib」があるため、導入しやすい環境が整っています。
ブロックチェーンについて、より詳しく知りたい方は、「ブロックチェーンの仕組みを分かりやすく解説!活用例も紹介」をご覧ください。
Pythonは業務効率化もできる!
続いて、「業務効率化編」として、日頃の業務に役立つPython活用例を4つ紹介します。
- Excelの自動化
- Web上の情報収集(スクレイピング)
- データ分析
- API連携
Excelのデータ処理の自動化や、データ分析についての紹介もあり、試しにPythonを使ってみたい初心者にもおすすめです。
なお、業務効率化の方法については「業務効率化とは?成功事例に学ぶ手法や役立つツール・アイデアを紹介!」の記事で詳しく解説しています。
Excelの自動化
Pythonを使えば、Excelのデータ操作を自動化することができます。
例えば、勤務時間のデータや、経費の管理、ToDoリストやタスク管理など、大量のデータを扱う際には、これらのデータの処理を自動化するプログラムをPythonで作成することが効果的です。単純な数値の計算や集計だけでなく、データをグラフ化して見やすいレポートを定期的に出力する、といった内容も自動でできるようになります。
さらに、自動化処理の範囲には、特定のExcelファイル内だけでなく、新規フォルダを作成したり、PowerPointにグラフ化したものを貼り付けたりすることも含まれます。なお、PythonでExcelを処理するには、「OpenPyXL」のライブラリがよく利用されます。
Web上の情報収集(スクレイピング)
Pythonは、Web上にあるデータを収集する「スクレイピング」にも利用されます。
スクレイピングとは、Webサイトの見出しや画像などの情報を自動的に取得し、その情報を加工して新たな情報を生成することです。
スクレイピングの活用事例としては以下のようなものがあります。
- 複数のニュースサイトから、見出しを取得し、話題の取り上げられ方を分析する
- 複数のECサイトから商品の価格データを取得し、価格表を作成したり、一番安いサイトを表示したりする
- 株価や指標を収集し、今後の株価を予測する
上記はどれも、手作業でもできることですが、多大な労力が必要です。スクレイピング技術を使って自動化することで、業務効率を大幅に向上できる可能性があります。
なお、Pythonには「Requests」ライブラリがあるため、スクレイピングを簡単に実装できます。
Webスクレイピングについて、詳しくは「【入門】Python用ライブラリを使用したWebスクレイピングとは?」をご覧ください。
PythonはAPI連携も可能
APIとは「Application Programming Interface」の略で、ある特定のアプリケーションの機能を切り出し、第三者のアプリケーションでその機能を利用できるように共有されるものです。APIは、情報を所有する側がその情報を利用したい人向けに公開している連携機能を意味します。
APIを利用することで、データの取得やデータの入力などの自動化処理が容易になります。例えば、TwitterやGoogleなどの有名サービスもAPIを提供しています。
TwitterのAPIを利用して、過去の投稿を保存・閲覧できる機能を持つ「Twilog」や、Google Map APIを利用して、配送業者向けに効率的な配達ルートを作成するサービスなども実現されています。そのため、SNSやGoogleの情報を活用したいときは、スクレイピングではなくAPI連携するのが一般的です。
さまざまなサービスにおいて、Pythonで利用できるAPIが提供されているため、APIが使いやすいこともPythonのメリットだといえます。 実際にAPIを利用する際には、REST APIのフレームワークを利用することをおすすめします。PythonのREST APIフレームワークについて、詳しく知りたい方は「【入門編】Django REST frameworkとは?チュートリアルで解説」をご覧ください。
データ分析・可視化
Pythonを用いてデータ分析を行い、仕事の業務効率化を図ることも可能です。
ここでのデータ分析とは、大量のデータから必要な情報を取り出して、分類・整理・取捨選択などの処理を行い、価値ある情報にすることです。大量のデータを使って、客観的な情報を得ることは、意思決定のための材料になり、見落としていた情報に気づくことができるなどのメリットがあります。
データ分析にはR言語が使われることもありますが、近年ではPythonのデータ分析ライブラリが充実するに伴って、Pythonのシェアが増えています。Pythonのデータ分析ライブラリには、データを扱う際に欠かせない配列計算を行う「SciPy」など数理計算のものが豊富です。また、Pythonライブラリ「Pandas」を使用すれば、表形式のデータを容易に扱えたり、「Matplotlib」を用いることでデータの可視化が容易だったりするので、データ分析・可視化を行う際に利便性が高いでしょう。
R言語はデータ解析を専門に行う人には使い勝手の良いプログラミング言語ですが、初心者には習得が難しい一面もあります。
データ分析は数学的な知識に加え、分散処理やクラウドなどエンジニアリングのスキル、課題抽出や整理などのビジネススキルなど、広く高度な能力が必要です。また、データ分析の用途は広いので、データ分析を専門とする「データサイエンティスト」になると、IT分野はもちろんのこと、サービス業や農業など、さまざまな分野で活躍することができます。
データ分析について詳しく知りたい方は、「【データサイエンス入門】必要なスキルや資格は?」の記事をご覧ください。
Pythonが適さない開発とは?
逆に、Pythonが開発に適さないものは下記の3点です。
- ゲーム開発
- スマホアプリ開発
- デスクトップアプリ開発
それぞれの項目について解説します。
ゲーム開発
Pythonはゲーム開発に適さないプログラミング言語です。
Pythonには、「Pygame」や「Cocos2d」などのゲームライブラリがあったり、Unityと連動させたりするため、ゲーム開発ができないわけではありません。しかし、ほかの言語と比較するとゲーム開発を得意としないプログラミング言語です。
Pythonは、処理速度が遅いという特徴を持ちます。ゲームには、処理速度の速さが求められるため、Pythonはゲーム開発に適さない理由のひとつになっています。
例えば、C++やC#、Javaなどのほうがゲーム開発に適しているため、あえてPythonを使う必要はないのかもしれません。また、現在はプログラミング言語を記述せずに開発できるプラットフォームも存在するため、それらを活用すれば初心者でもゲーム開発が可能です。
スマホアプリ開発
Pythonには、「kivy」というAndroidアプリケーション開発用フレームワークが存在します。そのため、Androidアプリの開発は可能です。
しかし、iOS開発のフレームワークが充実しておらず、iPhoneアプリの作成が難しくなっています。また、現在はクロスプラットフォーム開発でAndroidとiOS両方に対応させるケースが多く、iPhoneアプリの作成が難しいPythonをあえて用いる必要はないと考える人も少なくありません。
通常、iOSアプリ開発には、Swiftを使用します。また、Androidアプリ開発においてもPythonを使用するのは稀であり、KotlinやJavaを用いるのが一般的です。
デスクトップアプリ開発
Pythonには、「Tkinter」というライブラリがあり、それを使うことでデスクトップアプリ開発ができます。しかし、WindowsならC#、MacOSXのアプリケーション開発ならSwiftを使用するほうが好ましいといえます。
Pythonはどんな人に適している?
Pythonは下記のような人に適しているプログラミング言語です。
- プログラミング言語学習をしたことがない人
- AIやデータサイエンスに興味関心がある方
- 将来的に海外でエンジニアになることを希望する人
なぜ、このような人がPythonに向いているのかについて解説します。
プログラミング言語を学んだことがない人
日本の場合、初心者がはじめに学ぶプログラミング言語としてC言語やJavaなどが選ばれます。しかし、海外ではPythonを学習言語として採用するところも多いのが実情です。その理由は、文法がシンプルだからです。そのため、プログラミングを学んだことがない人にとってPythonは最適なプログラミング言語といえます。
AIやデータサイエンス分野に興味がある方
Pythonでできることでもご紹介したように、AIやデータサイエンスを得意とするプログラミング言語です。そのため、このような分野に興味がある人は、積極的に習得してみてはいかがでしょうか。
海外でエンジニアとして働くことを希望する人
Pythonは海外のシステム開発案件で採用されるケースが多いです。そのため、将来的に海外でエンジニアとして働きたい人に最適なプログラミング言語といえます。
この記事では、Pythonでできることを8つのテーマから実例を挙げて紹介しました。機械学習での用途や、自動化して業務効率化を図る用途など、Pythonは幅広く活用することができます。ぜひPythonに挑戦してみてください。
最新情報・キャンペーン情報発信中