为什么Numpy Diag功能表现得很奇怪?

时间:2015-02-15 20:00:03

标签: python numpy diagonal

diag 函数不会将结果保存到变量。

import numpy as np
A = np.random.rand(4,4)
d = np.diag(A)

print d
# above gives the diagonal entries of A

# let us change one entry
A[0, 0] = 0

print d
# above gives updated diagonal entries of A

为什么 diag 函数以这种方式运行?

1 个答案:

答案 0 :(得分:4)

np.diag视图返回到原始数组。这意味着以后对原始数组的更改将反映在视图中。 (然而,好处是操作比创建副本要快得多。)

请注意,这只是某些numpy版本中的行为。在其他情况下,会返回一份副本。

To"冻结"结果,您可以像d = np.diag(A).copy()

一样复制它