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的相应行向量给抽取了出来。
如果进行变量或者标定量的大数据处理,这种筛选功能的使用肯定会给程序的设计带来极大的便捷。
做一下简单的示范:
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的相应行向量给抽取了出来。
如果进行变量或者标定量的大数据处理,这种筛选功能的使用肯定会给程序的设计带来极大的便捷。
相关文章推荐
- numpy多为数组和切片的索引
- numpy 数组索引
- Pyhton科学计算工具Numpy(二)之数组索引切片,numpy随机数及文件生成读取
- NumPy数组基本的索引和切片
- numpy 中的ndarray数组返回符合特定条件的索引方法
- NumPy 高级索引和数组概念
- Numpy的array的布尔型索引与赋值
- python数据分析:numpy数组的索引与切片
- numpy 中的ndarray数组返回符合特定条件的索引方法
- numpy中布尔型数组的处理方法
- numpy 中的ndarray数组返回符合特定条件的索引方法
- Numpy 笔记(二): 多维数组的切片(slicing)和索引(indexing)
- numpy布尔型索引
- Numpy 数组基础操作--索引、组合、分割、复制、遍历、转换、序列化(四)
- numpy数组花式索引所造的错误 typeerror:只有整形的能作为索引
- numpy数组切片索引的详细讲解
- python numpy数组的索引和切片的操作方法
- numpy中实现ndarray数组返回符合特定条件的索引方法
- 【NumPy学习指南】day4 多维数组的切片和索引
- numpy学习笔记-用于布尔型数组的方法