我目前正在尝试使用 python 类作为某种子程序。
我正在尝试处理一个数组(比如“temp”)。数组 'temp' 基于数组 'x'。但是,当我对数组 'temp' 进行更改时,数组 'x' 也会更改,这非常奇怪。*我想问一下如何在不影响 x 数组的情况下创建临时数组。
这是我的示例代码,它更清楚地显示了这种效果。
#!/usr/bin/env python3
import numpy as np
class TEST:
def __init__(self):
self.x = np.asarray([[1,2,3], [4,5,6], [7,8,9]])
def process(self):
print(self.x)
print("- "*5)
temp = self.x
temp[:,0] = temp[:,0] +10
print(self.x)
if __name__ == "__main__":
asd = TEST()
asd.process()
输出是
[[1 2 3]
[4 5 6]
[7 8 9]]
- - - - -
[[11 2 3]
[14 5 6]
[17 8 9]]
Python 有很酷的细节。如果你将一个数组等同于另一个变量,那么它们就会连接起来,就会出现像你这样的问题。您只需将此数组分配给另一个变量。我建议将该行更改为: temp = self.x.copy() 在这种情况下,您创建该数组的副本。祝你好运)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句