我在使用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)
第一个a
和b
正确显示,是一个随机数组。然后a
排序并正确显示,但b
显示a
的确切内容。 b
应保持未分类状态。这有什么问题?
答案 0 :(得分:2)
你不应该使用print a
但是print p
否则你打印全局数组而不是传递给函数的数组。