我想生成对称的零对角矩阵。我的对称零件正常工作,但是当我从numpy使用fill_diagonal作为结果时,结果为“无”。我的代码如下。感谢您的阅读
import numpy as np matrix_size = int(input("Size of the matrix \n")) random_matrix = np.random.random_integers(-4,4,size=(matrix_size,matrix_size)) symmetric_matrix = (random_matrix + random_matrix.T)/2 print(symmetric_matrix) zero_diogonal_matrix = np.fill_diagonal(symmetric_matrix,0) print(zero_diogonal_matrix)
np.fill_diagonal()与跨python / numpy的许多其他方法一样,它可以就地工作。例如:为什么“ return list.sort()”返回None,而不返回列表?。那是因为它直接更改了内存中的对象,而不创建新对象。这些函数的返回值为None。因此,请更改:
np.fill_diagonal()
None
zero_diogonal_matrix = np.fill_diagonal(symmetric_matrix,0)
只是:
np.fill_diagonal(symmetric_matrix,0)
然后,您将看到反映在中的更改symmetric_matrix。
symmetric_matrix