numpy数组如何通过逻辑判断(不相关的数组)取出目标元素,举例X=X[y!=0]

前提:是数组,即查询的type结果为numpy.ndarray。列表不行

X和y赋值,X的行数需要同y元素个数相同

X = np.arange(0,32).reshape(8,4)
print(type(X))
print(X)
y=np.arange(0,8)
print(y)

结果

<class 'numpy.ndarray'>
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]
 [12 13 14 15]
 [16 17 18 19]
 [20 21 22 23]
 [24 25 26 27]
 [28 29 30 31]]
[0 1 2 3 4 5 6 7]

想要实现联动X和y,取出需要的y数据同时,也取出对应位置的X的数据
y的条件是取出y>4的数据

y1=y[y>4]
print('y>4的数据',y1)

结果

y>4的数据 [5 6 7]
判断y大于4的布尔结果 [False False False False False  True  True  True]

利用上述结果,对X数组使用逻辑判断,即可取出布尔值为True对应的X的数据

X1=X[y>4]
print('输出对应y>4的X数组中的数据',X1)

结果

输出对应y>4的X数组中的数据
 [[20 21 22 23]
 [24 25 26 27]
 [28 29 30 31]]

你可能感兴趣的:(python)