Python Numpy子阵列影响原始二维阵列
我用Python Numpy子阵列影响原始二维阵列,python,arrays,numpy,Python,Arrays,Numpy,我用numpy创建了这个2D数组: >>>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]] 然后我从x2 >>>x2_sub = x2[:2, :2] >>>print(x2_s
numpy
创建了这个2D数组:
>>>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]]
然后我从x2
>>>x2_sub = x2[:2, :2]
>>>print(x2_sub)
[[5 0]
[7 9]]
现在,如果我修改这个子数组,原始数组将被更改!!:
>>>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]]
我不想更改原始数组。有人能告诉我我在做什么吗?numpy中的切片创建了一个不同于Python列表的视图。使用.copy()
显式创建副本:
x2_sub = x2[:2, :2].copy()
numpy中的切片创建不同于Python列表的视图。使用.copy()
显式创建副本:
x2_sub = x2[:2, :2].copy()
切片将返回x2
的视图。如果要显式复制,可以在修改之前执行x2\u sub=x2\u sub.copy()
。切片将返回x2
的视图。如果要显式复制,可以在修改之前执行x2\u sub=x2\u sub.copy()
。