我有一个包含1和0的mask_re:(8781288, 1)
掩码,label file
(y\ulbl:(8781288,1))和一个包含feat_re: (8781288, 64)
的特征向量。我只需要从特征向量和标签文件中获取掩码文件中为1的那些行。我如何做到这一点,以及如何基于一个元素中的掩码文件在masked_label file
中应用相反的操作,即将预测值(ypred
)放入(恢复回来)
例如,在Matlab中可以很容易地X=feat_re(mask_re==1)
,并且可以恢复回new_lbl(mask_re==1)=ypred
,其中new_lbl=zeros(8781288, 1)
。我试着用python做类似的事情:
X=feat_re[np.where(mask_re==1),:]
X.shape
(2, 437561, 64)
根据@hpaulj建议编辑(解决)
问题是我的掩码文件的形状,一旦我把它改成mask_new=mask_re.reshape((8781288))
,它就解决了我的问题,然后
X=feat_re[mask_new==1,:]
(437561, 64)
您可以使用布尔索引进行掩蔽,如下所示
这将选择(mask\u re==1)为真的专长行。然后您可以使用重塑函数重塑x。您可以再次使用“重塑”恢复到相同的阵列形状。“-1英寸表示需要通过numpy计算尺寸
我怀疑你的错误来自
mask
的形状:记住,
numpy
可以有1d和0d数组;它并不强迫一切都是二维的有
where
(又名nonzero
):相关问题 更多 >
编程相关推荐