嵌套函数中的Numpy数组被覆盖

2024-10-02 12:35:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我遇到的问题是,当我将一个数组(下面代码中的数组“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”是不变的,不改变。如果你有什么解决办法,请帮帮我。在


Tags: 函数代码in元素forlendefrange
2条回答

您可以使用numpy的内置函数:numpy.copy

d = numpy.copy(a)

问题是您将a的引用赋值给d,因为list/在本例中numpy数组是可变的,对d的任何更改也会影响a中的值

在编辑:- @EdChum谢谢你给了我更好的方法 Numpy有一个内置的复制函数,因为a已经是Numpy数组,所以可以使用:在

d = a.copy()

@旧路需要额外的导入:-在

^{pr2}$

而不是做d=a

相关问题 更多 >

    热门问题