假设我有一个二维坐标数组,看起来像
x = array([[1,2],[2,3],[3,4]])
在我之前的工作中,我制作了一个面具,看起来像
mask = [False,False,True]
当我尝试在二维坐标向量上使用这个遮罩时,我得到一个错误
newX = np.ma.compressed(np.ma.masked_array(x,mask))
>>>numpy.ma.core.MaskError: Mask and data not compatible: data size
is 6, mask size is 3.`
我想这是有道理的。所以我试着用下面的面具代替:
mask2 = np.column_stack((mask,mask))
newX = np.ma.compressed(np.ma.masked_array(x,mask2))
我得到的是接近:
>>>array([1,2,2,3])
达到我的期望(和想要):
>>>array([[1,2],[2,3]])
一定有更简单的方法吗?
由于这些解决方案对我都不起作用,我想写下解决方案的作用,也许对其他人有用。我使用Python3.x,并且我在两个3D数组上工作。一个,我称之为
data_3D
包含大脑扫描中记录的浮点值,另一个,template_3D
包含表示大脑区域的整数。我想从data_3D
中选择那些值,它们对应于一个整数region_code
,如template_3D
:这给了我一个只有相关录音的一维数组。
这就是你要找的吗?
或来自numpy masked array:
相关问题 更多 >
编程相关推荐