[英]Numpy subarray affect the original 2d array
I created this 2D array
with numpy
:我用numpy
创建了这个2D array
:
>>>import numpy as np
>>>np.random.seed(0)
>>>x2 = np.random.randint(10, size=(3, 4))
>>>print(x2)
[[5 0 3 3]
[7 9 3 5]
[2 4 7 6]]
Then I created another subarray from x2
然后我从x2
创建了另一个子数组
>>>x2_sub = x2[:2, :2]
>>>print(x2_sub)
[[5 0]
[7 9]]
Now if I modify this subarray, the original array is changed:!:现在如果我修改这个子数组,原来的数组就会改变:!:
>>>x2_sub[0, 0] = 99
>>>print(x2_sub)
[[99 0]
[7 9]]
>>>print(x2)
[[99 0 3 3]
[ 7 9 3 5]
[ 2 4 7 6]]
I don't want the original array to change.我不想改变原始数组。 Can anyone tell me what I'm doing worng?谁能告诉我我在做什么?
Slices in numpy create a view unlike Python lists. numpy 中的切片创建与 Python 列表不同的视图。 Use .copy()
to explicitly create a copy:使用.copy()
显式创建副本:
x2_sub = x2[:2, :2].copy()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.