本問題の解説はYouTube動画でもご覧いただけます。
【解説動画】 第1回Python3データ分析模擬試験 第17問
※当解説動画シリーズはPythonエンジニア育成推進協会に認定された「Python 3 エンジニア認定データ分析試験」の参考教材です。
問題
次のスクリプトを実行した結果として正しいものはどれか。
import numpy as np
a = np.full((1, 5), np.e).T.ravel()
b = np.linspace(0, 1, 5)
c = np.hstack([a, b])
print(a[-1], c[-1])
① 2.718281828459045 5.0
② 2.718281828459045 1.0
③ 3.141592653589793 1.0
④ 3.141592653589793 5.0
⑤ 3.141592653589793 0.0
解説
正解は選択肢②です。以下、解説します。
コードの確認

個々の選択肢を見る前に、まずコードを確認します。
まずnumpyをインポートします。
full関数で配列を作り、変数aに格納します。
linspace関数で配列を作り変数bに格納します。
hstack関数で変数aとbを連結させて変数cに格納します。
そしてprint関数で変数aのデータの中身と変数cのデータの中身を出力します。
次に配列abcをそれぞれ具体的に見ていきます。
配列a

full関数にタプルで1×5行列の指定と、np.e(NumPyの定数でネイピア数を表すもの)の指定をすることで、ネイピア数だけからなる1×5の2次元配列ができます。
これに対してT属性で転置がなされ、5×1の2次元配列になります。
さらにこれに対しravelメソッドが使われ1×5の1次元配列になります。
以上を変数aに格納します。

print関数で出力されるときには、aにインデックス-1が指定されているため、この配列の最後のネイピア数が出力されることになります。
配列b

linspace関数で、0から1までを等間隔に区切った5つの要素の配列を作り変数bに格納します。
配列c

配列aとbをhstack関数で連結し、変数cに格納します。

aとbはどちらも1次元配列なので、配列cは、aの後にそのままbが続く形の1次元配列です。
出力
![第1回_Python3データ分析模試_第17問print関数によるa[-1]とc[-1]の出力](https://study.prime-strategy.co.jp/wp-content/uploads/2021/01/第1回_Python3データ分析模試_第17問print関数によるa-1とc-1の出力.png)
print関数で出力します。

aにインデックス-1がされているので、先ほど確認した通りネイピア数が出力されます。

cにインデックス-1が指定されているので、1(右図の右端)が出力されます。

コードを実行してみると、右のとおり確認ができます。
選択肢①~⑤

以上から、この問題の正解は選択肢②となります。
第1回Python3データ分析模擬試験第17問の解説は以上です。