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

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

本問題では「NumPy」のうち「array関数によるndarrayオブジェクトの生成」について学びます。

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

問題

次のスクリプトを実行した結果として正しいものはどれか。

import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([1, 2, 3])
print(a[-1:, [1, 2]], b.dtype)

① [[1 2], [4 5]] float16

② [[1 2], [4 5]] int16

③ [[1 2], [4 5]] int64

④ [[5 6]] int64

⑤ [[5 6]] int16

解説

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

コードの確認

第1回Python3データ分析模擬試験第15問コード

個々の選択肢を見る前に、まずコードを確認します。

まずnumpyをインポートして、asキーワードでnumpyをnpで呼び出せるようにします。

array関数にリストを渡して、2次元配列のndarrayオブジェクトを作り、変数aに格納します。

同様に一次元配列のndarrayオブジェクトを作り、変数bに格納します。

そしてprint関数で出力します。

第1回Python3データ分析模擬試験第15問実行結果(Linux環境)

コードを実行すると、右図のようになります(この結果はLinux環境での実行結果です)。

出力の1つ目が変数aのデータの中身、もう一つがbのデータ型です。

第1回Python3データ分析模擬試験第15問インデックス指定

また出力結果のうち、a[-1:, [1, 2]]に関する部分を確認します。

a[-1:, [1, 2]] の部分は、(2次元配列の)行が、負のインデックス値で指定されています。

ですから右のように、-1からそれ以降、つまり4,5,6の部分(青)がそれに該当します。

列についてはインデックス値1と2(赤)で指定されています。

これら(青と赤)の交わった5と6がprint関数で出力されています。

第1回Python3データ分析模擬試験第15問実行結果(Windows環境)

なお、このコードをWindows環境で実行すると、変数aのデータについてはLinux環境などの場合と同じですが、変数bのデータについてはint32、32ビットの整数と出力されます。

これは64ビットバージョンのWindowsでもそのようになります。この現象は、どうやらWindowsだけに見られるもので、64ビットバージョンのwindowsのシステム設計によるものであるようです。

選択肢①~⑤

第1回Python3データ分析模擬試験第15問選択肢①~⑤

以上から、この問題の正解は、aの出力が5と6、bの出力がint64または32になるものとなります。

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