我遇到的问题是,当我将一个数组(下面代码中的数组“a”)发送给一个函数(“下面代码中的“求和”),然后将它分配给另一个数组(下面代码中的数组“d”),数组“d”元素的任何变化也会反映在数组“a”上。在
from numpy import *
def summation(a,b):
a_row = len(a[:,1])
b_row=len(a[1,:])
d = a
for i in range(a_row):
for j in range(a_col):
d[i,j]=d[i,j]+b[i,j]
return d
def define():
a = array([[1,2,3,4,5],[6,7,8,9,10]])
b = array([[11,12,13,14,15],[16,17,18,19,20]])
z=summation(a,b)
print a
print b
print z
define()
所以当我运行这段代码时,输出是:
^{pr2}$我希望“a”是不变的,不改变。如果你有什么解决办法,请帮帮我。在
您可以使用numpy的内置函数:
numpy.copy
:问题是您将a的引用赋值给d,因为list/在本例中numpy数组是可变的,对d的任何更改也会影响a中的值
在编辑:- @EdChum谢谢你给了我更好的方法 Numpy有一个内置的复制函数,因为a已经是Numpy数组,所以可以使用:在
@旧路需要额外的导入:-在
^{pr2}$而不是做
d=a
相关问题 更多 >
编程相关推荐