Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 可以将遮罩与网格网格一起使用吗?_Python_Numpy_Mask - Fatal编程技术网

Python 可以将遮罩与网格网格一起使用吗?

Python 可以将遮罩与网格网格一起使用吗?,python,numpy,mask,Python,Numpy,Mask,我正在使用numpy.meshgrid计算图像中的一些点。然而,对于大图像,我会遇到内存问题,因为网格太大了。我实际上不需要整个网格,因为我将结果遮罩为一个小形状 编辑: 下面是一个小例子: nrows = 10000 ncols = 10000 mask = ma.array(np.zeros((nrows,ncols)), dtype = bool) mask[1000:1500,1000:1500] = True xvals = np.linspace(0,ncols,ncols) yv

我正在使用numpy.meshgrid计算图像中的一些点。然而,对于大图像,我会遇到内存问题,因为网格太大了。我实际上不需要整个网格,因为我将结果遮罩为一个小形状

编辑:

下面是一个小例子:

nrows = 10000
ncols = 10000
mask = ma.array(np.zeros((nrows,ncols)), dtype = bool)
mask[1000:1500,1000:1500] = True

xvals = np.linspace(0,ncols,ncols)
yvals = np.linspace(0,nrows,nrows)

gridX, gridY = np.meshgrid(xvals,yvals)

gridX2 = ma.array(gridX, mask = mask)
gridY2 = ma.array(gridY, mask = mask)

outArr[mask] = evalFunc(gridX2,gridY2,params)
正如您所看到的,网格是巨大的,但是遮罩要小得多。这只是一个理论示例,实际上遮罩不是矩形

所以我的问题是:


我是否可以让numpy.meshgrid仅在遮罩内创建网格网格,这样它就不需要在其余像素上使用空间???

您是否在寻找
np。非零(遮罩)
?遮罩阵列始终使用与其数据相同的空间,而不管遮罩如何。如果您确实避免在掩码外部“创建”网格网格,那么您仍然会使用与存储
0
所需的
np相同的空间。非零(掩码)
?掩码数组始终使用与其数据相同的空间,而不考虑掩码。如果您确实避免在遮罩外部“创建”网格网格,则仍然会使用与存储空间相同的空间
0