python - Numpy fill_diagonal 返回 None

标签 python numpy

我想生成对称零对角矩阵。我的对称部分有效,但是当我使用 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/

相关文章:

python - 收缩两个不同列表中的元素

python - 读取Python Dataframe中的所有元素

python - 从 pandas 数据帧创建特定的 json 对象

python - 使用 numpy 和 sklearn 的 R^2(决定系数)计算给出了不同的结果

python - 创建和使用坐标网格

python - 将1D字节对象 reshape 为3D numpy数组

Python 目标系统

python - 理解 Python 中的 Borg 单例模式

python - Python 中的自适应描述符

python - 在 numpy ndarray 中查找列表的长度