gpt4 book ai didi

python - numpy:修改转置数组不能按预期工作

转载 作者:太空宇宙 更新时间:2023-11-04 10:42:43 24 4
gpt4 key购买 nike

我有一个更复杂的程序,这段代码:

import numpy as np

ph=np.arange(6).reshape([2,3])
T=np.transpose(ph)
print 'T:\n',T
print 'ph:\n',ph # printing arrays before for cycle
for i in range(0,len(T)):
T[i]=2*T[i]
print 'ph:\n', ph # printing arrays after for cycle
print 'T:\n',T

我希望输出 T 和

ph:
[[0 1 2]
[3 4 5]]

相反,我有

ph:
[[ 0 2 4]
[ 6 8 10]]
T:
[[ 0 6]
[ 2 8]
[ 4 10]]

所以当我在 for 循环中将 T 的每一行乘以 *2 时,我对 ph 做同样的事情。为什么?

最佳答案

您可以在 docstring of np.transpose 中找到原因:

 Returns
------- p : ndarray
`a` with its axes permuted. A view is returned whenever
possible.

解决方案是使用 T = ph.T.copy() 如果您不想要 View ,而是一个副本。

关于python - numpy:修改转置数组不能按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19550655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com