【发布时间】:2018-04-08 12:50:14
【问题描述】:
我有以下
Import numpy as np
Mat1 = np.array([[1, 2, 3],
[0, 4, 5],
[0, 0, 6]])
Mat2 = np.transpose(Mat1)
for i in range(3):
for k in range(3):
if i == k:
Mat2[i,k] = 0
Mat = Mat2 + Mat1
print(Mat)
但我的回答给了我
[[0 2 3]
[2 0 5]
[3 5 0]]
什么时候我应该在对角线上有1, 4, 6。有谁知道为什么?
【问题讨论】:
-
来自文档:尽可能返回视图。。因此,通过将对角线设置为零,您可能会同时修改两个矩阵。
-
用
Mat2 = np.transpose(Mat1).copy()创建Mat2 -
@WarrenWeckesser 有点浪费,你不觉得吗?
-
该代码中有一个 lot 我会更改。我的评论是解决眼前问题的快速方法。
-
@WarrenWeckesser 够公平的。
标签: python arrays python-3.x numpy matrix