質問: np.arange(9).reshape((3,3)) print(np.diag(x,k=1)) print(np.diag(x,k=-1)) ``` と書いたコードを実行したとき ``` [1 5] [3 7] ``` と出力されました。 print(x)を行うと ``` [[0 1 2] [3 4 5] [6 7 8]] ``` と出力され、 なぜ[1 5][3 7]が print(np.diag(x,k=1)) print(np.diag(x,k=-1)) で出力されるのでしょう か?
回答: k = 0 なら、(0,0) から k > 0 なら(0,0)の位置を基準として(右)上側の位置 すなわちk = 1 なら (0,1)から k < 0 なら(0,0)の位置を基準として(左)下側の位置 すなわちk =-1 なら (1,0)から の対角線上の要素を返します。 ここで`(行,列)`位置とします。 もしかしてSciPy.orgのリファレンスに載っている関数を **かたっぱしから実行&確認**しているのでしょうか? また、疑問点をすべて質問するおつもりでしょうか?