一.花式索引
(1)花式索引(Fancy indexing):
指利用整数数组进行索引,而核心就是"轴"以及"下标",既然是整数数组作为下标,这就要求如果设置多个整数数组来索引的话,这些整数数组的元素个数要相等,这样才能够将整数数组映射成下标。比如对于[1, 2]和[3, 4]两个整型数组,可以拼接成arr[1, 3]和arr[2, 4]的下标来取值,而对于[1, 2, 3]和[3, 4]两个元素个数不等的情况下,是不能拼接成对应的下标的。
(2)“轴"和"下标”:
对于一维数组只有一个轴
axis = 0
,因此只能设置一个整型数组并且整型数组只能作用在axis = 0这个轴上;下标其实也很好理解,对于整数数组为[0, 2],可以简单理解0和2分别是arr数组的下标,即arr[0]和arr[2],花式索引arr[[0, 2]]结果中的元素值和单独对arr[0]以及arr[2]进行索引的元素值是一致的。
(3)
对于二维数组来说一共有两个维度两个轴
axis = 0、axis = 1
,由于此时整数数组只有一个,此时由于花式索引中只有一个数组,所以此时的索引数组只能作用在axis = 0的这个轴上;由于这里只有一个数组所以下标的理解和在一维数组中类似,对于[0, 2]来说,对应的下标索引为arr2d[0]、arr2d[2],对于二维数组相应的索引结果为二维数组arr2中的第一行和第三行;
二.布尔型索引的基本应用
布尔索引 实现的是通过一维数组中的每个元素的布尔型数值对一个与一维数组有着同样行数或列数的矩阵进行符合匹配。这种作用,其实是把一维数组中布尔值为True的相应行或列给抽取了出来(注意:一维数组的长度必须和想要切片的维度或轴的长度一致)。
三.数组的转置和轴对称
(1) 指将数组中每个元素按照一定的规则进行位置变换。
(2) T方法:
(3) transpose()方法:
二维数组运用 T属性转置较为简单,但当操作对象是高维度的数组时,运用transpose()方法可以自由的进行转置,但需要得到一个由轴编号组成的元组,才能对这些轴进行转置。
如果希望对arr进行转置操作,就需要对它的shape中的顺序进行调换。也就是说,当使用transpose()方法对数组的shape进行变换时,需要以元组的形式传入shape的编号,比如本例中的(1,2,0)。如果调用transpose()传入(0,1,2),则数组的shape不会发生任何变化。
(4) swapaxes()方法:
某些情况下,可能只需要转换其中的两个轴,这时可以使用此方法,该方法需要接收一对轴编号。