请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

有关切片索引和用整数数组索引的问题

图片描述
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 根据用户传来的参数的不同,来决定采用哪种逻辑去取值。


继续加油!:)

0 回复 有任何疑惑可以回复我~
  • 提问者 江景又妍和 #1
    谢谢老师!
    回复 有任何疑惑可以回复我~ 2020-07-13 12:14:22
  • 老师,如果是这样的话,如果我想表示矩阵X=np.arange(16).reshape(4,4)的134行和124列,即矩阵[[0,1,3],[8,9,11],[12,13,15]],用布尔List表示列索引的话,该怎么表示行的索引呢?
    回复 有任何疑惑可以回复我~ 2021-01-07 18:08:55
  • np.array([x[[0, 1, 3]] for x in X[[0, 1, 3]]])
    回复 有任何疑惑可以回复我~ 2021-01-07 21:55:48

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信