您的位置:首页 > 编程语言 > Python开发

numpy中数组的布尔型索引

2017-04-03 22:52 232 查看
布尔型索引是我在接触numpy的时候给了我很大兴奋感的一个功能,做一下简单的拓展,他能够很方便地应用到我现在需要的一些处理中。
做一下简单的示范:

In [15]: languages = np.array(['c','perl','python','c','python','perl','java'])

In [16]: data = np.random.randn(7,5)

In [17]: languages == 'java'

Out[17]: array([False, False, False, False, False, False,  True], dtype=bool)

In [18]: la

lambda    languages %%latex

In [18]: languages

Out[18]:

array(['c', 'perl', 'python', 'c', 'python', 'perl', 'java'],

      dtype='|S6')

In [19]: data

Out[19]:

array([[ 0.53269771, -0.96777826,  0.16436322, -0.66330618, -1.51764433],

       [-0.21901685, -1.40160172, -1.53372728,  1.34650319,  0.15598243],

       [-0.69165371, -2.54222671, -3.21942188, -0.79798456, -0.27872961],

       [-0.5463104 ,  0.05802836,  0.31547985, -0.72454312,  1.78765555],

       [-0.75535754,  0.31312654,  0.8220388 ,  0.70390257,  1.01196357],

       [ 1.21271695, -0.22248861, -0.10805819,  1.35481495,  0.48239976],

       [ 0.49911817,  0.44448865, -0.07650099,  0.52474671, -0.5468977 ]])

In [20]: languages.shape

Out[20]: (7L,)

In [21]: data.shape

Out[21]: (7L, 5L)

In [22]: data[languages == 'python']

Out[22]:

array([[-0.69165371, -2.54222671, -3.21942188, -0.79798456, -0.27872961],

       [-0.75535754,  0.31312654,  0.8220388 ,  0.70390257,  1.01196357]])
从上面的交互信息看来,languages是一个7行1列的向量,而数据是一个7行5列的向量。布尔索引实现的是通过列向量中的每个元素的布尔量数值对一个与列向量有着同样行数的矩阵进行符合匹配。而这样的作用,其实是把列向量中布尔量为True的相应行向量给抽取了出来。
如果进行变量或者标定量的大数据处理,这种筛选功能的使用肯定会给程序的设计带来极大的便捷。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: