newaxis
次のコードを実行したときの出力として、正しいものを1つ選べ。
import numpy as np
print((np.arange(3)[:, None] + np.arange(3)).tolist())
- A
[0, 2, 4] - B
[[0, 1, 2], [0, 1, 2], [0, 1, 2]] - C
[[0, 1, 2], [1, 2, 3], [2, 3, 4]] - D
[[0, 0, 0], [1, 1, 1], [2, 2, 2]]
正解と解説を見る
正解:C
a[:, None] で、1 次元配列を列ベクトル(形状 (n, 1))にできる。ブロードキャストと組み合わせて、すべての組み合わせの演算ができる。
| 順 | 実行する行 | 実行後の変数 |
|---|---|---|
| 1 | `import numpy as np` | — |
| 2 | `print((np.arange(3)[:, None] + np.arange(3)).…` | — |
| 結果 | 実際の出力 | [[0, 1, 2], [1, 2, 3], [2, 3, 4]] |
- A
誤り。要素ごとの足し算ではなく、すべての組み合わせ。
- B
誤り。行ごとに足す値が違う。
- C
正しい。(3, 1) と (3,) の足し算は、(3, 3) にブロードキャストされる。
- D
誤り。足し算になっている。
このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。