Python 反转numpy切片中的值
假设我有一个0和1的数组。当我得到一个切片时,我怎样才能反转值 以下是我所拥有的: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
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
。