データ分析・初級問題チェック

問題 15 /40

NumPyの配列の形状として、誤っているものはどれか。

選択 1

arr = np.array([0, 1, 2]) arr.shape ▶︎ (3, )

選択 2

arr = np.array([0, 1, 2], [3, 4, 5]) arr.shape ▶︎ (2, 3)

選択 3

arr = np.array([[0, 1, 2], [3, 4, 5]]) arr.shape ▶︎ (2, 3)

選択 4

arr = np.array([[[0, 1, 2], [3. 4, 5]], [[6, 7, 8], [9. 10, 11]]]) arr.shape ▶︎ (2, 2, 3)

解説

選択肢2が正解です。 Numpyの次元数は[ ]の入れ子の数で決まります。 【1次元】 [ 0 ] 【2次元】 [ [ 0 ] ] 【3次元】 [ [ [ 0 ] ] ] 例えば [ [ 0 ], [ 1 ], [ 2 ] ] は要素が3つありますが、入れ子の構造は2次元と同じなため、2次元です。 選択肢2の ( [0, 1, 2], [3, 4, 5] ) のように、1次元の配列を2つ並べることはできないため、arrayを定義しようとするとTypeErrorになります。選択肢3のように ( [ [0, 1, 2], [3, 4, 5] ] ) であれば2次元です。 NumPyとpandasは、引数で「axis(軸)」をよく使います。次元数と軸の関係は、図でイメージすると分かりやすいです。 【1次元】 【2次元】 【3次元】 axis=0、1、2は次元数によって方向が変わります。 3次元は奥行きが増えます。選択肢4の(2, 2, 3)は「奥行き、行、列」の順で表しているため、「2奥、2行、3列」という意味になります。 (公式書籍 p.93-94)