首页> python> python编程基础> 文章内容
Python之numpy中mask的基础问题
来源 :中华考试网 2020-11-03
中有刚入门的小白不知道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选取的点以及所有剩余的点。
python课程免费试听预约
- 地区:
- 北京
- 天津
- 上海
- 江苏
- 浙江
- 山东
- 江西
- 安徽
- 广东
- 广西
- 海南
- 辽宁
- 吉林
- 黑龙江
- 内蒙古
- 山西
- 福建
- 河南
- 河北
- 湖南
- 湖北
- 四川
- 重庆
- 云南
- 贵州
- 新疆
- 西藏
- 陕西
- 青海
- 宁夏
- 甘肃
- 姓名:
- 手机:
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)