采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
我运行了如下代码
x = np.arange(16) X=x.reshape(4,-1) X 是一个0-15的矩阵,然后 我继续运行代码
X[X[1,:] % 3 == 0,:]
得到的是[8,9,10,11]。按理说,这个运算计算的应该是第二行中被三整除的数字所在还给取出来么?
如果你想取出第二行满足某个条件的元素,首先要拿到第二行,在第二行中传入相应的 Fancy Index
第二行是 X[1,:],Fancy Index 是:X[1,:] % 3 == 0。所以应该写成:
X[1,:][X[1,:] % 3 == 0]
你的写法是在二维矩阵中取值。因为 X[1,:] % 3 == 0 是 [False, False, True, False],所以相当于是要在整个二维矩阵 X 中取出索引 2 的元素(索引 2 为 True),二维矩阵中每一个元素是一个向量,索引为 2 的向量是 [8, 9, 10, 11]。
继续加油!:)
那我有两个疑问,这与课上的语言形式好像不太一样,第二,我写的这个实际运行的是什么呢
我回复的“你的写法是...” 一段在描述你的写法实际在运行什么。 和课上的语言形式好像不太一样具体是指什么?请具体指出你认为和课上的那一段语言的写法你觉得应该是一样的,实际结果却不一样?
这个视频中写到X[X[:,3] % 3 == 0,:]返回的是一横行中最后一个元素是三的倍数的行,但是按照同样的写法取每个列中含有3的倍数的列不太一样,就不能直接变成X[X[3:,] % 3 == 0,:]
登录后可查看更多问答,登录/注册
Python3+sklearn,兼顾原理、算法底层实现和框架使用。
2.5k 19
3.5k 17
3.0k 15
1.6k 15
1.5k 14