Python 反转numpy切片中的值

Python 反转numpy切片中的值,python,numpy,Python,Numpy,假设我有一个0和1的数组。当我得到一个切片时,我怎样才能反转值 以下是我所拥有的: import numpy as np a = np.zeros((10,10)) x1,x2 = (4,4) y1,y2 = (6,6) # set some ones a[x1:y1,x2:y2] = 1 # get a slice or view v = a[x1:y1,x2:y2] # invert values v = 1-v # somehow the values assigned in

假设我有一个0和1的数组。当我得到一个切片时,我怎样才能反转值

以下是我所拥有的:

import numpy as np

a = np.zeros((10,10))

x1,x2 = (4,4)
y1,y2 = (6,6)

# set some ones
a[x1:y1,x2:y2] = 1

# get a slice or view
v = a[x1:y1,x2:y2]

# invert values
v = 1-v

# somehow the values assigned in the 'v' don't appear in 'a'?
print(a)

从Divakar comment开始,您可以使用内置函数检查两个
v
变量是否不同,以及检查
a
v
是否以及何时共享内存:

将numpy导入为np
a=np.零((10,10))
x1,x2=(4,4)
y1,y2=(6,6)
a[x1:y1,x2:y2]=1
v=a[x1:y1,x2:y2]
打印(id(v),np.可能共享内存(a,v))
#259977568对
v=1-v
打印(id(v),np.可能共享内存(a,v))
#259979728假
而通过按建议修改现有的
v
,将:

v=a[x1:y1,x2:y2]
打印(id(v),np.可能共享内存(a,v))
#259978968对
v[:]=1-v
打印(id(v),np.可能共享内存(a,v))
#259978968对

继Divakar comment之后,您可以使用内置函数检查两个
v
变量是否不同,以及检查
a
v
是否以及何时共享内存:

将numpy导入为np
a=np.零((10,10))
x1,x2=(4,4)
y1,y2=(6,6)
a[x1:y1,x2:y2]=1
v=a[x1:y1,x2:y2]
打印(id(v),np.可能共享内存(a,v))
#259977568对
v=1-v
打印(id(v),np.可能共享内存(a,v))
#259979728假
而通过按建议修改现有的
v
,将:

v=a[x1:y1,x2:y2]
打印(id(v),np.可能共享内存(a,v))
#259978968对
v[:]=1-v
打印(id(v),np.可能共享内存(a,v))
#259978968对

该分配创建了一个新的内存空间。使用
v[:]=1-v
。该赋值将创建一个新的内存空间。使用
v[:]=1-v