Numpy深拷贝数组

时间:2016-02-08 20:07:30

标签: python arrays numpy

我在使用numpy复制数组时遇到了一些麻烦。我正在运行一些不同的排序函数并比较运行时间,所以我需要原始数组的副本和我修改的副本。这是我得到的代码。

import numpy
import random

SIZE = 10
DISPLAY = True

def random_fill():
    return numpy.array([random.random()*10000 for i in range(SIZE)])

def copy(p):
    return numpy.copy(p)

def display(p):
    if (DISPLAY):
        print a
        print

def bubble_sort(array):
    temp = 0
    for i in range(SIZE, 1, -1):
        for j in range(1, i):
            if (array[j-1] > array[j]):
                temp = array[j-1]
                array[j-1] = array[j]
                array[j] = temp

a = random_fill()
b = copy(a)
display(a)
display(b)
bubble_sort(a)
display(a)
display(b)

第一个ab正确显示,是一个随机数组。然后a排序并正确显示,但b显示a的确切内容。 b应保持未分类状态。这有什么问题?

1 个答案:

答案 0 :(得分:2)

你不应该使用print a但是print p否则你打印全局数组而不是传递给函数的数组。