草庐IT

python - 根据索引屏蔽 numpy 数组

如何根据实际索引值屏蔽数组?也就是说,如果我有一个10x10x30矩阵,并且我想在第一个和第二个索引彼此相等时屏蔽该数组。例如,[1,1,:]应该被屏蔽,因为1和1彼此相等,但[1,2,:]不应该,因为它们这样做不是。我只在三维方面问这个问题,因为它类似于我当前的问题并且可能会使事情复杂化。但我的主要问题是,如何根据索引值屏蔽数组? 最佳答案 一般来说,要访问索引的值,您可以使用np.meshgrid:i,j,k=np.meshgrid(*map(np.arange,m.shape),indexing='ij')m.mask=(i=

python - 如何测试numpy数组中的每个元素是否被屏蔽

如何测试numpy数组中的每个元素是否都被屏蔽了?这是我想要做的:x=#isamaksednumpyarraymasked_min=numpy.ma.min(x)ifmasked_minISNOTAMASKEDELEMENT:#dosomestuffonlyifmasked_minisavalue在实践中我看到了这个:>>>x=numpy.ma.array(numpy.array([1,2,3]),mask=[True,True,True])>>>masked_min=numpy.ma.min(x)masked测试masked没有帮助:>>>numpy.ma.sum(x)==numpy

python - 屏蔽数组的中值滤波器

我在这个论坛上看到过几个关于计算掩码数组(例如图像)的中位数的讨论。我想要的稍微微妙一些,它是在我的图像上应用中值滤波器。我知道一种方法,但速度太慢,希望能有加快进程的方法。例如,假设我有一个形状为(10,10)的ma​​sked数组,我想应用一个带框(3,3)的中值滤波器,而不使用那些被屏蔽的元素。我的目标是将图像的每个像素中的值替换为框的掩码中值的值。假设一个非常简单的情况,我们可以将“图像”和掩码构建为:im=numpy.random.uniform(size=(10,10))mask=numpy.zeros_like(im)mask[1:3,:]=1masked_im=nump

python - 嵌入查找表不会屏蔽填充值

我正在使用embedding_lookup操作,以便为我的文档中的每个标记生成密集向量表示,这些标记被馈送到卷积神经网络(网络架构类似于WildMLarticle中的网络架构)。一切正常,但是当我填充我的文档并在其中插入一个填充值时,嵌入查找也会为此标记生成一个向量。我认为这种方法可能会改变分类任务的结果。我想要实现的是类似于TorchLookupTableMaskZero的东西1)我想做的是正确的吗?2)是否已经实现了类似的东西?3)如果不是,如何屏蔽填充值以防止为其生成相应的向量?提前谢谢你,亚历山德罗 最佳答案 @Alessa

python - Numpy View Reshape Without Copy(二维移动/滑动窗口、步幅、屏蔽内存结构)

我将图像存储为2dnumpy数组(可能是多维)。我可以在那个反射(reflect)二维滑动窗口的数组上创建一个View,但是当我reshape它以使每一行都是一个扁平化的窗口(行是窗口,列是该窗口中的一个像素)时,python会制作一个完整的副本。这样做是因为我使用的是典型的步幅技巧,并且新形状在内存中不连续。我需要这个,因为我将整个大图像传递给sklearn分类器,它接受二维矩阵,其中没有批处理/部分拟合过程,并且完整的扩展副本对于内存来说太大了。我的问题:有没有办法在不完全复制View的情况下做到这一点?我相信答案要么是(1)我忽略的关于strides或numpy内存管理的东西,要

python - 如何使用 rasterio/python 使用 shapefile 屏蔽栅格,将多边形内的栅格像素设置为零?

我正在尝试创建一个土地掩模以应用于卫星图像,它将与土地质量相交的栅格中的像素设置为0。在尝试了gdal、skimage、pyplot等之后,我发现rasteriocookbook中给出的方法既快速又简单。但是,它将多边形外部的像素设置为0,而我正在尝试执行相反的操作。如果可能,请继续使用栅格-您不必计算地理空间坐标的像素位置或处理超出栅格变为负范围的裁剪功能。它的速度也很快,这对于我正在处理的原始图像的文件大小来说很重要。来自这里:https://mapbox.s3.amazonaws.com/playground/perrygeo/rasterio-docs/cookbook.htm

python - 如何屏蔽 Python 3 嵌套字典以返回仅包含某些项目的新字典?

我正在使用API的多个端点,这些端点返回的数据非常冗长。我想将此数据的一个子集提供给其他地方的另一段代码。假设我有几个像这样的字典(我打算循环和过滤):asset={'id':1,'name':'MY-PC','owner':'me','location':'NewYorkCity','model':{'id':1,'name':'Surface','manufacturer':{'id':1,'name':'Microsoft'}}}我想创建一个函数来接收该字典,以及一个“掩码”,用于创建仅包含允许项目的新字典。这可能是一个示例掩码(不过,我可以使用任何格式使生成的代码最简洁):ma

python - 在 numpy 中用 2d 掩码屏蔽 3d 数组

我有一个3维数组,我想使用一个与3维数组最右边的两个维度相同的2维数组来屏蔽它。有没有一种方法可以在不编写以下循环的情况下执行此操作?importnumpyasnpnx=2nt=4field3d=np.random.rand(nt,nx,nx)field2d=np.random.rand(nx,nx)field3d_mask=np.zeros(field3d.shape,dtype=bool)fortinrange(nt):field3d_mask[t,:,:]=field2d>0.3field3d=np.ma.array(field3d,mask=field3d_mask)print

python - 有没有更好的方法在 python 中屏蔽信用卡号?

所以我有一个包含完整信用卡号码的csv文件。我们不需要完整的号码,所以我正在编写一个快速脚本来解析csv并用掩码表示替换cc号码。(除最后四个以外的所有*)。我是python的新手,并且破解了它,并且它有效,但为了学习,我想知道它是否可以更容易地完成。假设“str”是一个完整的信用卡号。但为了我的示例,我只使用字符串“CREDITCARDNUMBER”。str="CREDITCARDNUMBER";strlength=len(str)masked=strlength-4slimstr=str[masked:]print"*"*masked+slimstr输出正是我想要的********

python - 对屏蔽数组的有效值调用函数

我有两个numpy掩码数组:>>>xmasked_array(data=[12--4],mask=[FalseFalseTrueFalse],fill_value=999999)>>>ymasked_array(data=[4--04],mask=[FalseTrueFalseFalse],fill_value=999999)如果我尝试将x除以y,当其中一个操作数被屏蔽时,除法运算实际上并没有执行,所以我没有得到除法-零误差。>>>x/ymasked_array(data=[0.25----1.0],mask=[FalseTrueTrueFalse],fill_value=1e+20)