行列の積
次のコードを実行したときの出力として、正しいものを1つ選べ。
import numpy as np
A = np.array([[1, 2], [3, 4]])
B = np.array([[0, 1], [1, 0]])
print((A @ B).tolist())
- A
[[0, 2], [3, 0]] - B
[[2, 1], [4, 3]] - C
[[3, 4], [1, 2]] - D
[[1, 3], [2, 4]]
正解と解説を見る
正解:B
@ は行列の積。* は要素ごとの積で、結果が異なる。積の順序を入れ替えると、結果が変わる。
| 順 | 実行する行 | 実行後の変数 |
|---|---|---|
| 1 | `import numpy as np` | — |
| 2 | `A = np.array([[1, 2], [3, 4]])` | A = [[1, 2], [3, 4]] |
| 3 | `B = np.array([[0, 1], [1, 0]])` | B = [[0, 1], [1, 0]] |
| 4 | `print((A @ B).tolist())` | A = [[1, 2], [3, 4]], B = [[0, 1], [1, 0]] |
| 結果 | 実際の出力 | [[2, 1], [4, 3]] |
- A
誤り。要素ごとの積(
A * B)の結果。 - B
正しい。行列の積。B をかけると、A の列が入れ替わる。
- C
誤り。行を入れ替えた結果(
B @ A)。 - D
誤り。転置した結果。
このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。