什麼是在python中創建一個2D列表(或numpy數組)的最佳方式,其中對角線設置爲-1,其餘值從0增加1,不同的n值。例如,如果n = 3的陣列看起來像:在一個numpy數組中圍繞一個定義的對角線增加值
[[-1,0,1]
[2,-1,3]
[4,5,-1]]
或對於n = 4:
[[-1,0,1,2]
[3,-1,4,5]
[6,7,-1,8]
[9,10,11,-1]]
等
我知道可以用零,並用建立一個數組對角設置爲與-1: 一個= numpy.zeros((N,N)) numpy.fill_diagonal(一,-1)
所以,如果n = 3時,這將給出:
[[-1,0,0]
[0,-1,0]
[0,0,-1]]
但是,我會如何設置0的數量增加,如上面的例子所示?我是否需要迭代並通過循環設置值?或者有更好的方法來解決這個問題嗎?
在此先感謝。