本問題では「データ分析の概要、データサイエンティストの役割」について学びます。データサイエンティストやデータ分析エンジニアの役割、そしてデータ分析とPythonについて教科書の範囲で整理し確認します。
本問題の解説はYouTube動画でもご覧いただけます。
【解説動画】 第1回Python3データ分析模擬試験 第01問
※当解説動画シリーズはPythonエンジニア育成推進協会に認定された「Python 3 エンジニア認定データ分析試験」の参考教材です。
問題
データ分析に関する次の記述のうち、誤っているものはどれか。
①データサイエンティストの役割には、モデルやアルゴリズム構築、新たな解法や新技術への取り組み、解決したい課題に向き合う実務、分析結果の評価などがある。
②データサイエンティストの役割は、研究分野と実務で多少の違いがある。研究分野においては、新たな解法や新技術への取り組みが重視され、実務においては、解決したい課題に向き合う部分が重視される。
③データ分析に利用されるプログラミング言語には、Python、R、Julia、Excel Visual Basic for Applicationsなどがある。
④Pythonでデータ分析に使われる主なツールには、Jupyter Notebook、NumPy、pandas、Matplotlib、SciPy、scikit-learnなどがある。
⑤Pythonはデータ分析以外の分野でも活用されており、Webアプリなどのフロントエンド、速度向上のための低レイヤー処理などの分野においても他のプログラミング言語に比して優位性が高い。
解説
正解は選択肢⑤です。以下、解説していきます。
選択肢①
選択肢①は正しい選択肢です。データサイエンティストの役割が説明されています。
ここで「データサイエンティスト」と「データ分析エンジニア」の定義・役割、必要な知識技術について、Python3エンジニア認定データ分析試験の主教材である『Pythonによる新しいデータ分析の教科書』(以下、教科書)の範囲内で整理・確認します。
データサイエンティストは教科書において「データ分析・データ解析の一連の処理、理解・評価を行う職種」と定義されています。
データサイエンティストの役割は右表の通りです。特に研究分野では「新たな解法や新技術」が重視され、一方の実務分野では「解決したい課題」が重視されます。
そして、主に数学、情報工学、対象分野の知識が必要とされます。
一方、データ分析エンジニアは「データ工学を実践する職種」と定義されています。
そしてデータ分析エンジニアにとって最低限必要とされる知識としては、データハンドリング、データの可視化、プログラミング、インフラレイヤーなどがあります。このうち特にデータハンドリングは「前処理」とも呼ばれる重要です。
また付加的に必要とされる知識として機械学習、数学、対象分野の専門知識などがあります。
選択肢②
選択肢②も正しい選択肢です。
データサイエンティストの役割に関する、研究分野と実務分野の違いが説明されています。上記で確認した通りです。
選択肢③
選択肢③も正しい選択肢です。データ分析に利用されるプログラミング言語が列挙されています。
ここで、データ分析とPythonについて、教科書の範囲で整理しておきます。
Pythonの特徴として挙げられるのは、言語としての仕様がわかりやすく、コンパイル不要な動的スクリプト言語であり、パッケージも豊富かつオープンソースであることなどです。
つまり生産性が高いので、データ分析以外にも応用範囲が広く、右図「優位性あり」に列挙されたようなサーバ系ツールやWebシステムの構築などの分野で優位性があります。
逆に、WebアプリなどのフロントエンドやデスクトップGUI等の分野では他の言語に比して優位性が高いとはいえません。
データ分析に使う主なツールとして、Jupyter Notebook、NumPy、pandas、Matplotlib、SciPy、scikit-learnなどがあります。
データ分析に使える言語としては、Pythonのほかに、R、Julia、エクセル、VBAなどがあります。
またJava、その他汎用プログラミング言語でもデータ分析を行うことができます。
つまりおよそ自由に制御構造を記述できるプログラミング言語ならデータ分析を行うことは可能です。
そこで、仮に③の選択肢に「PHP、JavaScript」が加わったとしても内容としては正しいといえます。
一方、「HTML/CSS」などの、そもそもプログラミング言語ではない(つまり制御構造を記述できない)ものが加わったとすると、全体として誤りの内容となります。
選択肢④
選択肢④は正しく、内容は上記の通りです。
データ分析に使われる主なツールのうち、
・Jupyter Notebook は Web アプリケーション
・NumPy、pandas、Matplotlib、SciPy、scikit-learn はパッケージ
となります。
選択肢⑤
選択肢⑤は誤りです。
WebのフロントエンドはやはりJavaScriptなどのほうが優位性が高いといえます。
またPythonはコンパイル不要な動的スクリプト言語であるため、記述がシンプルで生産性が高い反面、実行速度は速くはありません。ですから例えば速度向上のための低レイヤー処理などには向かないといえるでしょう。
第1回Python3データ分析模擬試験第01問の解説は以上です。