我想生成对称零对角矩阵。我的对称部分有效,但是当我使用 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 中的许多其他方法一样,就地工作。例如:Why does “return list.sort()” return None, not the list? 。即它直接改变内存中的对象,并不会创建新的对象。此类函数的返回值为None
。因此,更改:
zero_diogonal_matrix = np.fill_diagonal(symmetric_matrix,0)
致:
np.fill_diagonal(symmetric_matrix,0)
然后您将看到 symmetry_matrix
中反射(reflect)的更改。
关于python - Numpy fill_diagonal 返回 None,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46445894/