我如何制作一个空心对称矩阵,在主对角线上有零,在 numpy 的其他地方
How do I make a hollow symmetric matrix with zeros in the main diagonal, ones elsewhere in numpy
在 Python numpy 中,如何制作一个空心对称矩阵,主对角线为零,其他地方为零?例如
import numpy as np
I = np.identity(8) # the identity matrix
I
array([[ 1., 0., 0., 0.],
[ 0., 1., 0., 0.],
[ 0., 0., 1., 0.],
[ 0., 0., 0., 1.]])
但我想要::
array([[ 0., 1., 1., 1.],
[ 1., 0., 1., 1.],
[ 1., 1., 0., 1.],
[ 1., 1., 1., 0.]])
只需从 1 中减去单位矩阵:
1 - np.identity(size)
演示:
In [3]: np.identity(4)
Out[3]:
array([[ 1., 0., 0., 0.],
[ 0., 1., 0., 0.],
[ 0., 0., 1., 0.],
[ 0., 0., 0., 1.]])
In [4]: 1 - np.identity(4)
Out[4]:
array([[ 0., 1., 1., 1.],
[ 1., 0., 1., 1.],
[ 1., 1., 0., 1.],
[ 1., 1., 1., 0.]])
在 Python numpy 中,如何制作一个空心对称矩阵,主对角线为零,其他地方为零?例如
import numpy as np
I = np.identity(8) # the identity matrix
I
array([[ 1., 0., 0., 0.],
[ 0., 1., 0., 0.],
[ 0., 0., 1., 0.],
[ 0., 0., 0., 1.]])
但我想要::
array([[ 0., 1., 1., 1.],
[ 1., 0., 1., 1.],
[ 1., 1., 0., 1.],
[ 1., 1., 1., 0.]])
只需从 1 中减去单位矩阵:
1 - np.identity(size)
演示:
In [3]: np.identity(4)
Out[3]:
array([[ 1., 0., 0., 0.],
[ 0., 1., 0., 0.],
[ 0., 0., 1., 0.],
[ 0., 0., 0., 1.]])
In [4]: 1 - np.identity(4)
Out[4]:
array([[ 0., 1., 1., 1.],
[ 1., 0., 1., 1.],
[ 1., 1., 0., 1.],
[ 1., 1., 1., 0.]])