有关切片索引和用整数数组索引的问题
来源:3-10 Numpy中的比较和Fancy Indexing
江景又妍和
2020-07-13
bobo老师好,老师3-10这节课第五分钟的时候,这里我有一点不太明白
第一个例子是按照两个数组,下标一一对应,取出需要的三个点,而第二个就取出相应的矩阵了,而不是分别将点取出来
我不能理解的是,X[:2,col]为什么不可以理解为 X[ [0,1], [1,2,3] ]这样的呢?这样的话x y就不对应了,就没法按照下标一一对应这样来索引了。
写回答
1回答
-
如果我要没理解错的话,你的问题是,凭什么 X[[0, 1], [1, 2, 3]] 的输出和 X[:2, [1, 2, 3]] 的输出不一样。(前者会报错)。
简单来说,是因为 numpy 就是这样定义的。
对于每一种参数,numpy 只能定义一种语义。所以,numpy 将 X[一个数组, 另一个数组] 的参数定义成了根据两个数组分别取出 x 和 y 的索引(要求两个数组必须一致),然后在 X 矩阵中取值。而将切片定义成了取出相应的所有行(或者列)。
numpy 根据用户传来的参数的不同,来决定采用哪种逻辑去取值。
继续加油!:)
032021-01-07
相似问题