我想生成对称的零对角矩阵。我的对称部分起作用,但是当我使用numpy的fill_对角线作为结果时,我得到了“None”。我的代码在下面。谢谢你的阅读
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
。因此,改变:只是:
^{pr2}$然后您将看到
symmetric_matrix
中反映的更改。在相关问题 更多 >
编程相关推荐