本問題の解説は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問選択肢①](https://study.prime-strategy.co.jp/wp-content/uploads/2021/01/第1回_Python3データ分析模試_第14問選択肢①-1024x576.png)
選択肢①は、正しいです。
NumPyの配列用の型がndarray、行列用の型がmatrixです。
選択肢②
![第1回_Python3データ分析模試_第14問選択肢②](https://study.prime-strategy.co.jp/wp-content/uploads/2021/01/第1回_Python3データ分析模試_第14問選択肢②-1-1024x341.png)
選択肢②は、正しい肢です。
![第1回_Python3データ分析模試_第14問選択肢②サンプルコード](https://study.prime-strategy.co.jp/wp-content/uploads/2021/01/第1回_Python3データ分析模試_第14問選択肢②サンプルコード-1024x541.png)
右は選択肢②に関連するメソッドを使ったサンプルコードです。
まず2次元のnumpyオブジェクトを作って変数aに格納しています。
type関数で、オブジェクトの型がndarrayオブジェクト(numpyの配列)であることを確認します。
dtype属性で、配列のデータ型が32ビットの符号付整数型であることを確認します。
shape属性で、配列の形状、つまり各次元の大きさを確認します。
最後に、もともと2×3の配列aを、reshapeメソッドで、3×2の形の配列に変換します。
選択肢③
![第1回_Python3データ分析模試_第14問選択肢③](https://study.prime-strategy.co.jp/wp-content/uploads/2021/01/第1回_Python3データ分析模試_第14問選択肢③-1024x576.png)
選択肢③は、正しい肢です。
ravelメソッドとflattenメソッドはどちらも多次元のNumPy配列を1次元に変換することを、ここではおさえておきましょう。
選択肢④
![](https://study.prime-strategy.co.jp/wp-content/uploads/2022/11/第1回_Python3データ分析模試_第14問選択肢④_問題文-1024x399.png)
選択肢④は、誤りです。
ravelメソッドとflattenメソッドは先ほど確認した通り同じ働きをします。
![](https://study.prime-strategy.co.jp/wp-content/uploads/2022/11/ravelメソッドとflattenメソッドの違い-1024x171.png)
ただし両者は結果の返し方が異なります。ravelメソッドは参照を返します。一方、flattenメソッドはコピーを返します。
※以前は「参照」を「浅いコピー」、「コピー」を「深いコピー」と表現することもありましたが、新版の「Pythonによるあたらしいデータ分析の教科書 第2版」よりこの表記はなくなっていますので、表記をあわせております。
選択肢⑤
![](https://study.prime-strategy.co.jp/wp-content/uploads/2021/01/第1回_Python3データ分析模試_第14問選択肢⑤-1024x363.png)
選択肢⑤は、正しい肢です。
dtype属性については選択肢②で確認した通りです。
第1回Python3データ分析模擬試験第14問の解説は以上です。