我在互联网上阅读了许多有关切片的文章,但是似乎没有人回答我的问题。
我有一个包含三列的numpy数组,分别是A,B和Y。所有值都是1或0。如果要在A列上应用过滤器(即,如果A),我想找出Y的结果值== 0,那么我得到什么Y值。
例如,这是一个numpy数组
A B Y
0 0 1
1 0 0
0 0 1
0 0 0
因此,如果我选择A = 0,则Y变为1,1,0。
如果某列的结果取决于另一列的值,那么如果有人向我展示如何执行此操作(使用此示例),我将不胜感激。
答案 0 :(得分:1)
您可以同时按行和列编制索引。在第一个维度上使用布尔索引,在第二个维度上使用整数索引:
A = np.array([[0, 0, 1],
[1, 0, 0],
[0, 0, 1],
[0, 0, 0]])
B = A[A[:, 0] == 0, 2] # array([1, 1, 0])
B = A[A[:, 0] == 0, -1] # equivalent solution, negative indices supported
常规NumPy数组不存在诸如A
,B
,Y
之类的通知标签。要选择特定的行或列,请使用整数索引,请注意第一行或列的索引为0
。 A[:, 0] == 0
返回一个布尔数组,该数组用于过滤第一个维度(行)。