Numpy攻略系列:高级索引机制之位置列表型索引,布尔型索引
所谓高级索引就是不使用整数或者切片作为索引值,在这一节重点介绍三类高级索引:常规的高级索引,位置列表型高级索引,布尔型高级索引剩下来两类索引。
位置列表型索引:
开始之前需要介绍需要隆重介绍下Numpy.random中的shuffle函数,生成一个随机排列的索引值数组:
给大家一个程序例子:
程序运行结果:
其实把程序结果贴出来也没有告诉大家究竟怎么意思,其实最重要就是这个numpy.ix_函数,我们老规矩help一下:
和前一节讲的常规的高级索引唯一区别就是用了这么一个函数生成索引矩阵,然后用于矩阵索引,它生成索引以矩阵形式返回。
布尔型索引
就是基于布尔数据的索引,属于高级索引技术范畴,它也是利用特定的迭代器对象实现的。
大家可以看看(lena>lena.max()/4)&(lena<3*lena.max()/4)值是啥:
当索引布尔矩阵为True时候,被索引的相关位置被设置为0,False保持不变。
实验结果: