mask怎么在Numpy中使用?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)技術(shù)團(tuán)隊(duì)十年來(lái)致力于為客戶提供網(wǎng)站設(shè)計(jì)制作、網(wǎng)站建設(shè)、成都品牌網(wǎng)站建設(shè)、營(yíng)銷型網(wǎng)站、搜索引擎SEO優(yōu)化等服務(wù)。經(jīng)過(guò)多年發(fā)展,公司擁有經(jīng)驗(yàn)豐富的技術(shù)團(tuán)隊(duì),先后服務(wù)、推廣了上千網(wǎng)站,包括各類中小企業(yè)、企事單位、高校等機(jī)構(gòu)單位。numpy中矩陣選取子集或者以條件選取子集,用mask是一種很好的方法
簡(jiǎn)單來(lái)說(shuō)就是用bool類型的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)
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。