有刚入门的小白不知道numpy中如何使用mask,今天小编就来讲讲使用mask会遇到的一些问题。
numpy中矩阵选取子集或者以条件选取子集,用mask是一种很好的方法。
简单来说就是用bool类型的indice矩阵去选择。
1.mask = np.ones(X.shape[0], dtype=bool)
2.X[mask].shape
3.mask.shape
4.mask[indices[0]] = False
5.mask.shape
6.X[mask].shape
7.X[~mask].shape
8.(678, 2)
9.(678,)
10.(678,)
11.(675, 2)
12.(3, 2)
例如我们这里用来选取全部点中KNN选取的点以及所有剩余的点。
1.from sklearn.neighbors import NearestNeighbors
2.= NearestNeighbors(10).fit(X)
3._,indices = nbrs.kneighbors(X)
4.mask = np.ones(X.shape[0], dtype=bool)
5.mask[indices[0]] = False
6.plt.scatter(X[mask][:,0],X[mask][:,1],c='g')
7.plt.scatter(X[~mask][:,0],X[~mask][:,1],c='r')
带条件选择替换,比如我们需要将a矩阵内某条件的行置换为888剩余置换为999,可以直接用mask或者再用where一步搞定:
1.mask = np.ones(a.shape,dtype=bool) #np.ones_like(a,dtype=bool)
2.mask[indices] = False
3.a[~mask] = 999
4.a[mask] = 888
5.#############
6.np.where(mask, 888, 999)
上一篇:pythontime()使用方法
下一篇:如何求数组连续最大和
一级建造师二级建造师消防工程师造价工程师土建职称房地产经纪人公路检测工程师建筑八大员注册建筑师二级造价师监理工程师咨询工程师房地产估价师 城乡规划师结构工程师岩土工程师安全工程师设备监理师环境影响评价土地登记代理公路造价师公路监理师化工工程师暖通工程师给排水工程师计量工程师
执业药师执业医师卫生资格考试卫生高级职称护士资格证初级护师主管护师住院医师临床执业医师临床助理医师中医执业医师中医助理医师中西医医师中西医助理口腔执业医师口腔助理医师公共卫生医师公卫助理医师实践技能内科主治医师外科主治医师中医内科主治儿科主治医师妇产科医师西药士/师中药士/师临床检验技师临床医学理论中医理论