python中numpy有问题不懂,求帮助?

import numpy as np
a=np.array([(1,2,3),(4,5,6)])
b=a[:,0:2]
c=a[:,2]
d=b[c==3]

这是结果

图片说明

我不懂b这个矩阵里都没有c这列,它是怎么做到输出结果的

你要明白c == 3表示什么,这里c = [3,6] ,那么c == 3 的结果是[True, False],所以b[c==3] 等价于 b[[True, False]],结果嘛很明显了

import numpy as np
a = np.array([(1, 2, 3), (4, 5, 6)])
b = a[:, 0:2]   #行方向不变,列截取前两位
c = a[:, 2]     #行方向不变,列截取索引为2的值
d = b[c == 3]   #等价于 d= b[:1,:]  

print(a.shape)  # 查看a的形状  (2, 3),表示这是一个二维数组,每行有三个元素
print(a)       #[ [1 2 3]  [4 5 6] ]
print(b)       #[ [1 2]  [4 5] ]
print(c)       #[3 6]
print(d)       #[[1 2]]