2026/09/07

主教材1冊が試験範囲、Python3データ分析試験の優先順位

数学の基礎は6問ぶん、と割り切れるのは章別の出題数が公式に公表されているからです。NumPyとpandasの頭の切り替え、scikit-learnをfit・transform・predictの型で束ねる覚え方、CBT当日の注意まで。

執筆:ケンテイラボ編集部(資格試験対策アプリ開発・運営)

Python3 エンジニア認定データ分析試験は、一般社団法人Pythonエンジニア育成推進協会が実施する、Pythonを使ったデータ分析の基礎を問う認定試験です。選択式40問・試験時間60分・合格ラインは正答率70%で、全国のCBT会場から日程を選んで通年受験できます。受験料は11,000円(税込)、学割は5,500円(税込)です。この試験のいちばんの特徴は、主教材である『Pythonによるあたらしいデータ分析の教科書』の章立てが、ほぼそのまま出題範囲になっている点にあります。しかも公式は、章ごと・節ごとの出題数まで公表しています。本記事では、この「範囲が閉じている」という珍しい設計を前提に、どこへ時間を寄せ、どこを軽く流すかという配分の考え方から解説します。

主教材1冊が試験範囲、という設計をどう受け止めるか

多くの資格試験では、出題範囲は「〜に関する知識」といった抽象的な言葉で示され、どの本をどこまで読めば足りるのかは受験者が手探りで決めることになります。この試験はその点が大きく違い、主教材が1冊指定され、その章立てと公式の出題範囲表がほぼ対応しています。つまり「読むべき本が分からない」「範囲がどこまで広がるか読めない」という、独学でもっとも消耗する部分が最初から取り除かれています。

範囲が閉じているということは、裏を返せば逃げ場がないということでもあります。参考書を何冊も買い集めて安心を得る戦略は使えませんし、「この分野は捨てて他で稼ぐ」という選択も、全部で40問しかない以上ほとんど成立しません。合格ラインの正答率70%は40問中28問にあたり、落とせるのは12問です。1つの章をまるごと捨てると、それだけで残りをほぼ完璧に揃えなければならなくなります。

そこで有効なのが、教科書を「頭から通読する本」ではなく「出題範囲表と対応づけた索引」として扱う考え方です。章と節の見出しを先に一覧化し、それぞれが何問ぶんの重みを持つのかを書き込んでから読み始めると、同じ1時間の読書でも密度が変わります。閉じた範囲を使い切るというのは、要するに配分を意識して読むということです。

公式が公表している章別の出題数と、その偏り

公式サイトの出題範囲表には、章・節ごとの問題数が明示されています。40問の内訳は次のとおりです。

  • 1章(分析エンジニアの役割):2問/5%
  • 2章(Pythonと実行環境):5問/12.5%
  • 3章(数学の基礎):6問/15%
  • 4-1 NumPy:6問/15%
  • 4-2 pandas:7問/17.5%
  • 4-3 Matplotlib:6問/15%
  • 4-4 scikit-learn:8問/20%
  • 5章(応用:データ収集と加工):0問/0%

この表から読み取れることは大きく2つあります。第一に、4章のライブラリ実践だけで27問、全体の67.5%を占めるということ。合格に必要な28問とほぼ同じ数がここに集中しており、4章の理解度がそのまま合否に直結します。第二に、5章は0問だということ。スクレイピングや自然言語処理の前処理といった実務では出番の多い内容ですが、試験対策としての優先度は最後に回して構いません。

節の単位で見ると、最大はscikit-learnの8問、次いでpandasの7問です。この2つだけで15問あり、40問の4割弱を占めます。学習時間の配分も、素直にこの比率へ寄せるのが合理的です。よくある失敗は、最初の環境構築や文法の章を丁寧にやりすぎて、配点のもっとも重い4-4に着手する頃には息切れしている、というパターンです。1章と2章は合わせて7問で、しかも暗記量の割に取りやすい領域なので、深追いせず早めに通過させます。

章別の出題数が公表されているという事実は、思っている以上に強力な情報です。ふつうの試験なら過去問を何年分も集めて推定するしかない配分が、最初から与えられているわけです。学習計画を立てるときは、まずこの数字を紙に書き出して、自分の学習時間をその比率で割り当ててみてください。

「数学の基礎」は6問ぶん、実装を読むための最低限に絞る

3章の数学は6問・15%です。この数字をどう読むかで学習量が大きく変わります。6問のために線形代数と微積分の教科書を1冊ずつやり直すのは、どう考えても過剰です。かといって完全に飛ばすと、後半のライブラリの章で式が出てくるたびに立ち止まることになります。狙うべきは「実装を読むための最低限」という水準です。

出題の中心は、複雑な計算をさせることよりも、記号の読み方と用語の定義が結びついているかどうかにあります。シグマ記号や添字が何をまとめているのか。ベクトルと行列の積がどんな形のときに成立するのか。単位行列や逆行列、行列式が何をする道具なのか。微分であれば、傾きを求める操作が機械学習の最適化にどうつながるのか。確率統計であれば、平均・分散・標準偏差・共分散・相関係数の関係を、式と言葉の両方で説明できるか。問われるのはこの層です。

到達度の目安は「後の章に出てくる式を、詰まらずに読み下せる」ことです。scikit-learnの節で標準化の式や不純度の定義が出てきたときに、記号の意味を調べ直さずに読み進められれば十分。逆に、そこで毎回止まるようなら3章に戻る合図だと考えてください。

つまずきやすいのは、行列積が成立する次元の条件と、分散まわりの用語の混同です。行列積の条件は「前の行列の列数と、後の行列の行数が一致する」という一点に尽きますが、これは紙の上で覚えるよりも、NumPyで形の違う配列を実際に掛けてエラーを出してみるほうが早く定着します。数学の章こそ、手元で動かして確かめる価値があります。

NumPyとpandasは「配列」と「表」で頭を切り替える

4-1 NumPy が6問、4-2 pandas が7問。合わせて13問と重い領域ですが、この2つは似ているようで発想が違います。NumPyは同じ型の数値が並んだ多次元配列(ndarray)を高速に扱う道具で、pandasは列ごとに名前と型を持つ表(DataFrame)を扱う道具です。前者は基本的に「位置」でデータを指し、後者は「ラベル」でも指せる。この違いを意識せずに混ぜて覚えると、どちらの操作もあいまいになります。

NumPyで問われやすいのは、生成(array・arange・linspace・zeros・ones)、形の変更(reshapeとresizeの違い)、スライスとインデックス参照、ブールインデックスとファンシーインデックス、連結と分割、転置、そしてブロードキャストの規則と集約時のaxis指定です。特に注意したいのは、スライスがコピーではなく元の配列への参照を返すこと。切り出した先を書き換えると元も変わるという挙動は、結果を選ばせる設問で差が付く部分です。axis=0とaxis=1がどちらの方向にまとめるのかも、図を描いて固定しておきます。

pandasは、loc(ラベルで指定)とiloc(位置で指定)の使い分けが最初の関門です。スライスの終端が含まれるかどうかが2つで異なる点まで含めて押さえます。次にmergeのhow指定(inner・outer・left・right)で結果の行数がどう変わるか、欠損値をisnull・dropna・fillnaでどう扱うか、groupbyが何を単位に集計しているか。表として何が起きているかを言葉で説明できる状態にしておくと、コードの穴埋めにも読解にも対応できます。

そして試験の形式上、書けることより読めることが求められます。動くコードをその場で書かせるのではなく、書かれたコードの結果や、目的に対する正しい呼び出し方を選ばせる形が中心だからです。ふだんエディタの補完に頼って書いている人ほど、メソッド名や引数名のつづりがあいまいなまま通り過ぎています。ここは意識して埋めておく必要があります。

Matplotlibは「描ける」よりオブジェクトの階層を説明できること

4-3 Matplotlib は6問。ここは実務感覚と試験対策がもっともずれやすい分野です。実務ではとりあえずグラフが表示されれば目的を達しますが、試験で問われるのは書き方の構造のほうだからです。

Matplotlibには大きく2つの書き方があります。plt.〜を連ねて暗黙の描画先に積んでいくpyplotインターフェースと、FigureとAxesというオブジェクトを明示的に受け取って操作するオブジェクト指向スタイルです。Figureが用紙全体、Axesがその上に置かれた1つのグラフ領域という階層関係で、subplotsを使えばFigureと複数のAxesをまとめて作れます。この関係を口で説明できるかどうかが、6問を取れるかの分かれ目になります。

混乱の元は、2つのスタイルで対応する名前が微妙に違うことです。plt.titleに対してax.set_title、plt.xlabelに対してax.set_xlabelというように、接頭辞のset_が付くかどうかで対応しています。選択肢の中で2つのスタイルが混ざっていると、普段どちらか一方しか書いていない人は読み違えます。同じグラフを両方の書き方で1度ずつ作ってみると、この差は一気に整理できます。

扱う内容としては、折れ線・棒・散布図・ヒストグラム・円グラフの描き分け、タイトル・軸ラベル・凡例・目盛りの設定、スタイルと色の指定、画像ファイルへの保存までが範囲です。pandasのオブジェクトから直接描く書き方も含まれるので、DataFrameの描画機能がMatplotlibの上に載っているという関係も押さえておくと、設問の見通しが良くなります。

scikit-learnはfit・transform・predictという型で束ねる

4-4 scikit-learn は8問で、節単位では最大です。扱うアルゴリズムの数が多く、一つずつ理論から追いかけると際限がありません。ここで効いてくるのが、このライブラリのAPIが共通の型で設計されているという事実です。個別に覚えるのではなく、型に当てはめて束ねます。

前処理は「fitで統計量を覚え、transformで変換する」。モデルは「fitで学習し、predictで予測する」。この2本の型に、出てくるクラスをすべて当てはめて整理します。標準化や正規化を行うクラスも、決定木も、サポートベクタマシンも、ランダムフォレストも、線形回帰も、主成分分析も、k-meansも、入口はすべてfitで揃っています。何をfitに渡し、何が返り、次に何を呼ぶのか。型で覚えると、暗記量は見た目ほど多くありません。

順序として重要なのが、学習データにだけfitし、テストデータにはtransformだけを適用するという点です。テストデータまで含めてfitしてしまうと、本来は知らないはずの情報が前処理に混ざり込みます。いわゆるデータリークです。ここは手順として覚えるだけでなく、なぜその順序でなければならないかを説明できるようにしておきたい部分です。

後半の評価まわりは、混同行列の4区分から各指標を自力で導けるようにするのが近道です。適合率と再現率がそれぞれ何を見ている指標か、F値が両者をどうまとめているか、不均衡なデータで正解率だけを見ると何を見落とすか。加えて、ROC曲線とAUCの読み方、交差検証とグリッドサーチによるハイパーパラメータ探索、主成分分析による次元削減と寄与率、k-meansのクラスタ数の決め方(エルボー法)、階層的クラスタリングのデンドログラム。用語と役割をセットで押さえていきます。

JupyterLabで手を動かす — 写経で終わらせない3つの工夫

2章にはJupyter NotebookとJupyterLabの使い方が含まれ、venvやpipによるパッケージ管理、Anaconda(conda)との違いも範囲に入ります。セルの実行、マジックコマンド、ヘルプの引き方といった操作そのものが問われることもあるため、環境は必ず自分の手元に作ってください。読むだけで済ませられる章ではありません。

ただし、教科書のコードをそのまま打ち込んで結果が一致したところで満足すると、試験にはあまり効きません。写経を学習に変えるには、いくつか工夫が要ります。1つ目は、実行する前に出力を予想して、セルの上にコメントとして書いておくこと。当たれば理解できている証拠、外れればそこが弱点です。予想を書くという一手間だけで、同じコードから得られる情報量が変わります。

2つ目は、引数をわざと1つ変えて壊してみることです。axisを入れ替える、mergeのhowを変える、fitとtransformの順序を逆にする。そのとき出るエラーメッセージや結果の変化は、正しく動いたコードよりもはるかに記憶に残ります。問われるのは、まさにこの「変えると何が変わるか」の部分です。

3つ目は、疑問が出たらノートブックの中でその場で調べる習慣をつけること。ヘルプの引き方は範囲でもあり、調べる速さがそのまま学習速度になります。ノートブックは章ごとに1ファイルにまとめ、最後のセルに「この章で覚えるべきメソッド名」を箇条書きで残しておくと、直前期の見直しにそのまま使えます。

ケンテイラボ収録問題の分野内訳

ケンテイラボでは、この試験の対策問題を全304問収録し、本サイト独自に8つの分野へ整理しています(公式の出題範囲表の区分そのものではありません)。分野ごとの収録数・構成比と、それぞれが何を扱う領域なのかは次の表のとおりです。収録数は公式の出題数配分とあえて完全一致させておらず、演習量がないと定着しにくい分野には多めに問題を用意しています。

収録問題8分野の内訳と比重

ケンテイラボではPython3エンジニア認定データ分析試験の収録問題を8の分野に分けて整理しています (学習しやすさを優先した本サイト独自の区分で、実施団体が公表している 出題区分そのものではありません)。収録している304問を分野別に集計すると、 最も問題数が多いのは「④ pandas」の45問(全体の14.8%)、 最も少ないのは「① 分析エンジニアの役割・Python環境」の32問(同10.5%)です。上位3分野だけで全体の42.1%を占めるため、 ここを先に固めるかどうかが得点の土台になります。

表を眺めるときは、収録数の多さより「解説を読んで、扱う内容が思い浮かぶかどうか」を基準にしてください。分野の説明を読んで具体的な関数名やメソッド名が出てこない分野があれば、そこが最初に手を付けるべき場所です。

章ごとの負荷を収録データで確かめる

同じ1問でも、分野によって負荷は違います。次の表は、収録している304問を分野別に集計し、「数値を含む問題の割合」と「問題文の平均文字数」を出したものです。数値を含む割合が高い分野は定義や数字そのものを覚える比重が大きく、低い分野は用語の理解や挙動の読解が中心になります。問題文が長い分野は、本番でも読むのに時間がかかると考えて、時間配分に織り込んでおきます。

分野別の学習タイプ(収録304問の集計)

ケンテイラボに収録しているPython3エンジニア認定データ分析試験の問題を分野別に集計し、 「問題文または選択肢に数値が登場する問題の割合」と「問題文の平均文字数」を出しました。 数値の割合が高い分野は具体的な数字の暗記が得点を左右しやすく、 低い分野は用語の理解や文章の読み取りが中心になる傾向があります。

この試験でもっとも数値の比率が高いのは「③ NumPy」で60%、 もっとも低いのは「⑤ Matplotlib」で20%でした。 また問題文がもっとも長いのは「⑧ 応用:データ収集と加工」の平均56字で、 設問を読み解く負担が大きい分野といえます。

  • ① 分析エンジニアの役割・Python環境32問/数値を含む問題 22%/問題文 平均44
  • ② 数学の基礎35問/数値を含む問題 57%/問題文 平均34
  • ③ NumPy43問/数値を含む問題 60%/問題文 平均49
  • ④ pandas45問/数値を含む問題 47%/問題文 平均41
  • ⑤ Matplotlib40問/数値を含む問題 20%/問題文 平均36
  • ⑥ scikit-learn(前処理・分類・回帰)37問/数値を含む問題 32%/問題文 平均48
  • ⑦ scikit-learn(次元削減・評価・最適化・クラスタリング)35問/数値を含む問題 37%/問題文 平均43
  • ⑧ 応用:データ収集と加工37問/数値を含む問題 43%/問題文 平均56

数値の比率が高い分野は、数字を単独で覚えるより 「どの制度の・何の基準か」とセットで整理すると定着しやすくなります。 比率が低い分野は、似た用語同士の違いを説明できる状態を目指すと得点が安定します。

この2つの指標は、復習の方法を選ぶ手がかりにもなります。数値の比率が高い分野は一問一答の反復が効きますし、平均文字数が長い分野は、コードや状況を読み解く練習そのものが必要になります。同じ時間を使うにしても、分野によってやり方を変えたほうが効率的です。

学習スケジュールの組み立て方(2パターン)

学習にかかる期間は、Pythonをどれだけ書いてきたかで大きく変わります。以下はあくまで目安として示すモデルで、必要な時間は人によって異なります。なお、この試験はCBTで通年受験できるので、日程から逆算するより「4章を一巡して間違いが減ってきたら申し込む」という進め方も十分に現実的です。

Pythonを書いた経験がある場合

文法と環境がすでに手に馴染んでいるなら、1章と2章は出題範囲表と照らして抜けを確認する程度で通過できます。中心はライブラリ実践の27問と数学の6問です。NumPyやpandasを日常的に使っていても、reshapeとresizeの違いやlocのスライス終端の扱いなど、普段書かない部分に穴が残っているのがふつうです。まず問題を解いて穴を洗い出し、当たった箇所だけ教科書に戻る「問題起点」の進め方が効率的でしょう。

注意したいのは、3章の数学を後回しにしないことです。実装経験がある人ほど「式は飛ばしても動かせる」状態で来ているので、6問ぶんの用語がまるごと抜けていることがあります。ここを早めに一度通しておくと、後半のscikit-learnの理解が軽くなります。全体では週に数時間ずつで1か月前後を目安に考える人が多いようですが、合格に必要な学習時間は公式に示されているわけではないので、進み具合を見ながら調整してください。

Pythonをこれから始める場合

文法から入る場合は、教科書の順番を守るほうが結局は近道です。2章のPython文法(リスト・辞書・内包表記・関数・例外処理・標準ライブラリ)と実行環境をまず固め、3章の数学を軽く通してから4章へ進みます。4章はNumPy、pandas、Matplotlib、scikit-learnの順で、教科書の並びどおりに。この並びは依存関係の順にもなっていて、飛ばすと後半で理解が止まります。

期間としては2〜3か月程度を見込むという声が多く見られますが、これも保証された数字ではありません。期間そのものより、4章を最低2周できているかどうかを基準にしてください。1周目は仕組みの理解、2周目はメソッド名と引数まで含めた定着、というように目的を変えて回すと、2周が同じ作業の繰り返しになりません。

40問60分の時間配分と、CBT受験での実務的な注意

40問を60分ですから、単純計算で1問あたり90秒です。コードを読ませる設問が多いことを考えると余裕のある配分とは言えませんが、極端に厳しいわけでもありません。1周目は1問1分程度でテンポよく解き、迷った問題には印をつけて先へ進む。全問を終えてから見直しに20分弱を残す、という組み立てがやりやすいはずです。

時間を溶かしやすいのは、選択肢に並んだコードを1行ずつ頭の中で実行してしまうパターンです。まず設問が何を聞いているのか(結果を選ぶのか、正しい呼び出し方を選ぶのか、誤っているものを選ぶのか)を先に確定させ、そのうえで選択肢の差分だけを見比べるほうが速く済みます。4つの選択肢は多くの場合1か所か2か所しか違いません。

受験はCBT形式で、全国のテストセンターから会場と日程を選んで申し込みます。試験は画面上で行い、書籍やメモの持ち込みはできません。手元にエディタも補完もない状態でメソッド名や引数名を判断することになるため、「見れば分かる」ではなく「見なくても出てくる」水準まで持っていく必要があります。ここが独学でいちばん見落とされやすい点です。

合格ラインは正答率70%、40問中28問にあたります。なお合格率について、協会は2024年3月に累計ベースの数値を公表しています(2024年2月末時点で累計受験者数50,990名、データ分析試験の合格率81.5%)。ただし回次ごとに継続して公表されているわけではないため、最新の水準は分かりません。外部の数字を目標にするよりも、分野別の正答率を自分で管理して、7割を切っている分野から順に潰していくほうが確実です。

もう1つ、申し込みの際に気をつけたいのが試験名です。同じ協会には名称の似た「Python3 エンジニア認定基礎試験」があり、こちらは文法を中心とした別の試験で、主教材も出題範囲も異なります。データ分析試験のつもりで基礎試験に申し込んでしまわないよう、正式名称を確認してください。

収録304問をどう使って仕上げるか

教科書を読み終えた段階では、たいてい「分かったつもり」と「答えられる」の間に差があります。ケンテイラボの304問は、その差を可視化するために使うのが効果的です。使い方は3段階に分けて考えます。

第1段階は、分野別に解いて現在地を測ることです。ライブラリ実践の4分野(NumPy、pandas、Matplotlib、scikit-learnの前半と後半)を先に回し、正答率が7割に届かない分野を特定します。ここで見つかった穴が、教科書に戻るべき箇所です。最初から全分野を均等に回すのではなく、配点の重いところから測るのが順序として合理的です。

第2段階は、間違えた問題の理由を分類することです。用語そのものを知らなかったのか、メソッド名を取り違えたのか、挙動を勘違いしていたのか。理由によって対処が変わります。知らなかっただけなら覚え直せば済みますが、挙動の勘違いはJupyterLabで実際に動かして確認しないと、時間が経つとまた同じ間違いをします。

第3段階は、分野を混ぜて解くことです。本番は章ごとにまとまって出るわけではないので、pandasのつもりで読み始めたらNumPyの設問だった、という切り替えに慣れておく必要があります。分野を指定せずに解いて、全体で7割を安定して超えるようになったら、申し込みを検討していい頃合いです。

出題範囲が主教材1冊に閉じているというのは、裏返せば「やり切れば必ず届く」ということでもあります。章別の出題数という公開情報を配分の設計図として使い、27問ぶんの重みがある4章に時間を寄せる。遠回りに見えて、これがこの試験でいちばん素直な攻略法です。

実際に問題を解いて知識を定着させよう

ケンテイラボではPython3エンジニア認定データ分析試験の問題を無料で練習できます。

問題を解く →
← 記事一覧へ戻る