頭の体操です。
もんだい
Pythonで、以下のコマンドを実行するとどうなるでしょう?
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b = np.array([10, 11])
a[np.array([0, 2]), np.array([1, 0])] = b
print(a)
こたえ
[[ 1. 10. 3] [ 4. 5. 6] [11. 8. 9]]
これ、関連性わかります???
上記プログラムでは、多次元配列を、インデックス指定して、配列で置き換える、ということをやってます。
頭の固い私は、プログラムと、出力結果の関連性が最初全然分かりませんでした。
パッと分かる人は分かるんだろうなー。
かいせつ
分かってしまえば簡単なんですが、以下のように考えます。
まず、プログラムの1行1行を細かく分解、説明するとこんな感じ。
ここで、それぞれの関わりを色分けすると分かりやすいです。
こういうことかーって感じでした。
今まで色々な言語を触ってきましたが、このパターンの書き換えは頭になかったです。
まだまだ勉強が足りません…。