Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在numpy数组中将具有相同行和列的值设置为零?_Python_Numpy Ndarray - Fatal编程技术网

Python 如何在numpy数组中将具有相同行和列的值设置为零?

Python 如何在numpy数组中将具有相同行和列的值设置为零?,python,numpy-ndarray,Python,Numpy Ndarray,我有一个基本原则如下“ 如果索引具有相同的列和行,则将该值设置为零 rows = x.shape[0] cols = x.shape[1] for k in range(0, rows): for y in range(0, cols): if k==y: x[k,y]=0 预期产出: array([[ 0, 2, 3], [ 4, 0, 6], [ 4, 1, 0], [ 1, 5, 11

我有一个基本原则如下“

如果索引具有相同的列和行,则将该值设置为零

rows = x.shape[0]
cols = x.shape[1]
for k in range(0, rows):
    for y in range(0, cols):
        if k==y:
            x[k,y]=0
预期产出:

array([[ 0,  2,  3],
       [ 4,  0,  6],
       [ 4,  1,  0],
       [ 1,  5, 11],
       [ 4,  3,  4]])
有没有什么简单的方法可以达到同样的效果?我的实际矩阵非常大…

使用:


我不知道填充对角线可能适用于非对称矩阵。谢谢!
array([[ 0,  2,  3],
       [ 4,  0,  6],
       [ 4,  1,  0],
       [ 1,  5, 11],
       [ 4,  3,  4]])
x = np.array([[1, 2, 3], [4, 5, 6],[4, 1, 6],[1, 5, 11],[4,3, 4]], np.int32)
np.fill_diagonal(x,0)

print(x)
array([[ 0,  2,  3],
       [ 4,  0,  6],
       [ 4,  1,  0],
       [ 1,  5, 11],
       [ 4,  3,  4]], dtype=int32)