新聞中心
有剛?cè)腴T(mén)的小白不知道numpy中如何使用mask,今天小編就來(lái)講講使用mask會(huì)遇到的一些問(wèn)題。

創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括興文網(wǎng)站建設(shè)、興文網(wǎng)站制作、興文網(wǎng)頁(yè)制作以及興文網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,興文網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到興文省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
numpy中矩陣選取子集或者以條件選取子集,用mask是一種很好的方法。
簡(jiǎn)單來(lái)說(shuō)就是用bool類(lèi)型的indice矩陣去選擇。
mask = np.ones(X.shape[0], dtype=bool) X[mask].shape mask.shape mask[indices[0]] = False mask.shape X[mask].shape X[~mask].shape (678, 2) (678,) (678,) (675, 2) (3, 2)
例如我們這里用來(lái)選取全部點(diǎn)中KNN選取的點(diǎn)以及所有剩余的點(diǎn)。
from sklearn.neighbors import NearestNeighbors nbrs = NearestNeighbors(10).fit(X) _,indices = nbrs.kneighbors(X) mask = np.ones(X.shape[0], dtype=bool) mask[indices[0]] = False plt.scatter(X[mask][:,0],X[mask][:,1],c='g') plt.scatter(X[~mask][:,0],X[~mask][:,1],c='r')
帶條件選擇替換,比如我們需要將a矩陣內(nèi)某條件的行置換為888剩余置換為999,可以直接用mask或者再用where一步搞定:
mask = np.ones(a.shape,dtype=bool) #np.ones_like(a,dtype=bool) mask[indices] = False a[~mask] = 999 a[mask] = 888 ############# np.where(mask, 888, 999)
是不是很容易呢,小伙伴們學(xué)會(huì)了沒(méi)有~更多Python學(xué)習(xí)推薦:PyThon學(xué)習(xí)網(wǎng)教學(xué)中心。
分享文章:創(chuàng)新互聯(lián)Python教程:Python之numpy中mask選取子集
網(wǎng)址分享:http://m.fisionsoft.com.cn/article/dhidhhj.html


咨詢
建站咨詢
