データ分析・初級問題チェック
問題 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)
【2次元】
【3次元】
axis=0、1、2は次元数によって方向が変わります。
3次元は奥行きが増えます。選択肢4の(2, 2, 3)は「奥行き、行、列」の順で表しているため、「2奥、2行、3列」という意味になります。
(公式書籍 p.93-94)