我有一个问题,numpy.copy没有按预期工作。在
当按如下方式使用它时,它仍然引用我原来列表中的更改,我希望避免:
test = np.copy(random.sample(population_list, 2))
test[0][0][0][0] = 1.1111
如果我在测试赋值之后打印出population list
,它会将population_list
位置的值替换为1.1111。我的目标是从列表中抽取样本,然后对这些样本进行一些更改,而不影响初始列表。在
作为进一步的信息,mypopulation_list
是一个列表列表,其中第一个元素是一个numpy矩阵:
乐:This is how the data looks like。很抱歉这种奇怪的形式,我现在无法上课。在
为了详细说明我的意见,我会重新列出你的清单
如果
^{pr2}$ll
包含不同大小的子列表,我们将得到一个对象数组再拿这个玩一玩。如果}。但是如果存在中间对象数组级别,那么修改}。它更像是制作浅表副本(
np.copy
是4d数组,那么修改它的元素不会修改ll
或{y
将修改ll
和{ll[:]
),而不是深层复制。在总之,
np.copy
没有保留列表嵌套列表的结构。它尝试生成一个数组。您应该使用的是copy.deepcopy
。这将保留列表结构,并将值一直复制到下一级。在相关问题 更多 >
编程相关推荐