第1回Python3データ分析模擬試験【第14問】解説

第1回Python3データ分析模擬試験第14問

本問題では「Numpyの基礎」について学びます。

本問題の解説はYouTube動画でもご覧いただけます。
【解説動画】 第1回Python3データ分析模擬試験 第14問
※当解説動画シリーズはPythonエンジニア育成推進協会に認定された「Python 3 エンジニア認定データ分析試験」の参考教材です。

問題

NumPyに関する次の記述のうち、誤っているものはどれか。

① NumPyは配列や行列を効率よく扱うためのPythonのサードパーティ製パッケージで、配列用の型であるndarrayと行列用の型であるmatrixがある。

② NumPyオブジェクトの型を確認するためにはtype関数を、NumPy配列の形状を確認するためにはshapeメソッドを用いることができる。

③ NumPy配列の次元の変換を行うためにはreshapeメソッドを、2次元のNumPy配列を1次元に変換するにはravelメソッドまたはflattenメソッドを用いることができる。

④ NumPy配列の次元変換に用いるravelメソッドは深い参照を返し、flattenメソッドは浅いコピーを返す。

⑤ NumPy配列の要素のデータ型を確認するには、dtype属性を用いることができる。

解説

正解は選択肢④です。以下、解説します。

選択肢①

第1回_Python3データ分析模試_第14問選択肢①

選択肢①は、正しいです。

NumPyの配列用の型がndarray、行列用の型がmatrixです。

選択肢②

第1回_Python3データ分析模試_第14問選択肢②

選択肢②は、正しい肢です。

第1回_Python3データ分析模試_第14問選択肢②サンプルコード

右は選択肢②に関連するメソッドを使ったサンプルコードです。

まず2次元のnumpyオブジェクトを作って変数aに格納しています。

type関数で、オブジェクトの型がndarrayオブジェクト(numpyの配列)であることを確認します。
dtype属性で、配列のデータ型が32ビットの符号付整数型であることを確認します。
shape属性で、配列の形状、つまり各次元の大きさを確認します。

最後に、もともと2×3の配列aを、reshapeメソッドで、3×2の形の配列に変換します。

選択肢③

第1回_Python3データ分析模試_第14問選択肢③

選択肢③は、正しい肢です。

ravelメソッドとflattenメソッドはどちらも多次元のNumPy配列を1次元に変換することを、ここではおさえておきましょう。

選択肢④

第1回_Python3データ分析模試_第14問選択肢④

選択肢④は、誤りです。

ravelメソッドとflattenメソッドは先ほど確認した通り同じ働きをします。

ravelメソッドとflattenメソッドの違い

ただし両者は結果の返し方が異なります。ravelメソッドは参照を返します。一方、flattenメソッドはコピーを返します。

また言葉として明確に「参照」と「コピー」を分けるために、参照を「浅いコピー」、そうでない場合を「深いコピー」ともいいます。

つまり問題文のravelメソッドについて「深い参照」とあるところは、正しくは「浅いコピー」または「単に参照」、flattenメソッドについて、「浅いコピー」とあるところは、正しくは「深いコピー」または「単にコピー」です。

選択肢⑤

選択肢⑤は、正しい肢です。

dtype属性については選択肢②で確認した通りです。

第1回Python3データ分析模擬試験第14問の解説は以上です。