Numpy 高级索引
发布时间:2023-07-03 09:18:22 所属栏目:教程 来源:
导读:Numpy 比一般的 Python 序列提供更多的索引方式。除了前面章节介绍的用整数和切片的索引外,本节深入介绍布尔型索引和花式索引。
比较运算符与布尔型数组
在实际使用中,可以通过比较运算符来产生一个布尔型数组
比较运算符与布尔型数组
在实际使用中,可以通过比较运算符来产生一个布尔型数组
Numpy 比一般的 Python 序列提供更多的索引方式。除了前面章节介绍的用整数和切片的索引外,本节深入介绍布尔型索引和花式索引。 比较运算符与布尔型数组 在实际使用中,可以通过比较运算符来产生一个布尔型数组。 案例 利用random模块产生一个大小为7×4的随机数数组: data = np.random.randn(,)data out:array([[-, -, , -], [ , -, -, ], [- , -, -, -], [-, , , ], [-, - , -, ], [-, , , ], [-, -, , -]]) 定义一个名称数组,长度为7,并假设上述data中的每一行与名称数组中的名字一一对应。 names = np.array(['Ben','Tom','Ben','Jeremy','Jeremy','Tom','Ben'])names out:array(['Ben', 'Tom', 'Ben', 'Jeremy', 'Jeremy', 'Tom', 'Ben'], dtype='<U6') 对data数组,通过传入一个比较运算符,可以与全部元素逐一比较: data > out:array([[False, False, True, False], [ True, False, False, True], [False, False, False, False], [False, True, True, True], [False, False, False, True], [False, True, True, True], [False, False, True, False]]) 对同样大小的布尔型数组,可以利用&(和)、|(或)、-(非)进行运算。 例如对data进行-1~1之间的判断: (data>-) & (data < )out:array([[ True, True, True, True], [ True, True, False, True], [ True, True, True, False], [ True, False, False, True], [ True, False, True, True], [False, False, False, True], [ True, True, True, True]]) 比较运算符与布尔型索引 先利用比较运算符创建布尔型数组,再利用布尔型索引的功能,可以快速进行筛选。 案例 names中的每一个名字,和data的每一行是一一对应的关系。因此可以快速地选择出Ben的相关信息: data[names=='Ben']out:array([[-, -, , -], [- , -, -, -], [-, -, , -]]) 利用‘&’运算符,一次性选择出Ben和Tom的相关信息 data[(names=='Ben') | (names=='Tom')]out:array([[-, -, , -], [ , -, -, ], [- , -, -, -], [-, , , ], [-, -, , -]]) 布尔型数组也可以和切片、整数索引混合使用: array([[-, -], [ , -], [- , -], [-, ], [-, -]]) 特别地,也可以利用data本身,快速选择出大于0的元素: data[data > ]out:array([, , , , , , , , , , ]) 这里选择的结果是以一维数组的形式返回的。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |