什么是在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的数量增加,如上面的例子所示?我是否需要迭代并通过循环设置值?或者有更好的方法来解决这个问题吗?
在此先感谢。