采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
bobo老师好,老师3-10这节课第五分钟的时候,这里我有一点不太明白 第一个例子是按照两个数组,下标一一对应,取出需要的三个点,而第二个就取出相应的矩阵了,而不是分别将点取出来 我不能理解的是,X[:2,col]为什么不可以理解为 X[ [0,1], [1,2,3] ]这样的呢?这样的话x y就不对应了,就没法按照下标一一对应这样来索引了。
如果我要没理解错的话,你的问题是,凭什么 X[[0, 1], [1, 2, 3]] 的输出和 X[:2, [1, 2, 3]] 的输出不一样。(前者会报错)。
简单来说,是因为 numpy 就是这样定义的。
对于每一种参数,numpy 只能定义一种语义。所以,numpy 将 X[一个数组, 另一个数组] 的参数定义成了根据两个数组分别取出 x 和 y 的索引(要求两个数组必须一致),然后在 X 矩阵中取值。而将切片定义成了取出相应的所有行(或者列)。
numpy 根据用户传来的参数的不同,来决定采用哪种逻辑去取值。
继续加油!:)
谢谢老师!
老师,如果是这样的话,如果我想表示矩阵X=np.arange(16).reshape(4,4)的134行和124列,即矩阵[[0,1,3],[8,9,11],[12,13,15]],用布尔List表示列索引的话,该怎么表示行的索引呢?
np.array([x[[0, 1, 3]] for x in X[[0, 1, 3]]])
登录后可查看更多问答,登录/注册
Python3+sklearn,兼顾原理、算法底层实现和框架使用。
2.5k 19
3.5k 17
2.9k 15
1.6k 15
1.4k 14