NumPy之 索引技巧
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NumPy之 索引技巧相关的知识,希望对你有一定的参考价值。
参考技术A 一次性搞定NumPy入门基础知识NumPy之操控ndarray的形状
NumPy之浅拷贝和深拷贝
NumPy之索引技巧
当被索引的ndarray是一维时,利用array做索引,相当于一次性从被索引对象中挑选出索引指定的所有元素,索引出的对象仍然是一个ndarray对象。
如果索引是多维的,那么检出的ndarray的shape和索引的形状一致,索引中的各个数字则分别代表了元素在被检索ndarray中的位置
当被索引对象是多维的,且只提供一个索引,那么索引中的每个数字所对应的元素是被索引对象的第一个维度。
如果被索引对象是多维的,并且想从被索引对象中进行多维检索,那么需要给出多组索引array,这个时候每个索引array对应被索引对象中的一个维度。需要注意,索引array的形状必须是一致的,因为必须使用这几个索引array的相同位置(构成了被索引对象的不同维度)来共同指定被索引对象中的某一个元素。
通常可以把上述 i 和 j 写成list的形式,来作为索引使用
注意不能将 i 和 j 组合成array进行使用,这样会被解释器认为是索引被索引对象的第一个维度:
下面的例子展示了多维数组索引的一个应用:
可以使用索引来进行赋值操作,但注意如果索引有重复,将以最后一次赋值为准:
上述内容使用整数作为索引,而当使用布尔值作为索引时,则是通过指定需要哪些内容,不需要哪些内容来实现的(True,False)。
下面的例子通过给出一个原始ndarray相同形状的索引来进行操作,非常直观:
这个性质经常应用在赋值操作里:
另外一种用法类似于上述的多维度索引:对于每个维度,提供一个一维的array,说明需要这个维度上的哪些元素。
需要注意,这里 b1 和 b2 的长度要分别与 a 的两个维度的长度一致。
ix() 函数的参数是N个一维数组,它可以生产一个组合索引出来,这个索引有N维,每个维度的长度为每个参数的长度,取值由每个一维数组具体的值来决定。
以上是关于NumPy之 索引技巧的主要内容,如果未能解决你的问题,请参考以下文章