作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个方阵 A,其值为 0 或 1,并且包含一行或多行零。对于每行 0,我希望将 A 的相应对角线条目替换为 1。
例如,假设
A=np.array([[0,1,1,0,1],[0,0,1,1,1],[0,0,0,0,0],[0,1,0,0,0],[0,0,0,0,0]])
第 3 行和第 5 行全为零。我希望将 A[3,3] 和 A[5,5] 设置为等于 1。
最佳答案
矩阵是:
>>> A
array([[0, 1, 1, 0, 1],
[0, 0, 1, 1, 1],
[0, 0, 0, 0, 0],
[0, 1, 0, 0, 0],
[0, 0, 0, 0, 0]])
我们可以找出所有行的总和:
>>> A.sum(axis=1)
array([3, 3, 0, 1, 0])
我们希望将与 0 和行对应的所有对角线设置为 1。
因此,可以进行以下操作:
>>> row_sums = A.sum(axis=1)
>>> A[row_sums == 0, row_sums == 0] = 1
>>> A
array([[0, 1, 1, 0, 1],
[0, 0, 1, 1, 1],
[0, 0, 1, 0, 0],
[0, 1, 0, 0, 0],
[0, 0, 0, 0, 1]])
请注意,这是有效的,因为对于所需的行,row_sums == 0
为True
:
>>> row_sums == 0
array([False, False, True, False, True])
因此 A[row_sums == 0, row_sums == 0]
选择所需的元素。
关于python - 在具有一行零的矩阵中,如何将矩阵的相应对角线条目替换为一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59952252/
我在 Java 中遇到异常处理问题,这是我的代码。当我尝试运行此行时出现编译器错误:throw new MojException("Bledne dane");。错误是: exception MojE
我刚刚开始学习asp.net。在你们的支持下,我希望我能从这个论坛学到更多东西。 我的问题是, 我在 asp.net 页面中有一个 TabContainer1,因为每个选项卡面板中有多个类似 (60)
我是一名优秀的程序员,十分优秀!