相对于另一列中的值对一列进行子集化
Subsetting One column with respect to values in other column
我在互联网上阅读了很多关于切片数组的帖子,但是 none 似乎回答了我的问题。
我有一个包含三列的 numpy 数组,分别是 A、B 和 Y。所有值都是 1 或 0。如果我在 A 列上应用过滤器,我想找出 Y 的结果值,即如果 A==0,那么我得到的 Y 值是多少。
例如,这是一个 numpy 数组
A B Y
0 0 1
1 0 0
0 0 1
0 0 0
所以如果我选择 A = 0,则 Y 变为 1,1,0。
当一列的结果取决于另一列中的值时,如果有人告诉我如何执行此操作(使用此示例),我将不胜感激。
您可以同时按行和列编制索引。第一维使用布尔索引,第二维使用整型索引:
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
注意 A
、B
、Y
等标签在常规 NumPy 数组中不存在。要选择特定的行或列,请使用 整数 索引,注意第一行或第一列的索引为 0
。 A[:, 0] == 0
returns 用于过滤第一维(行)的布尔数组。
我在互联网上阅读了很多关于切片数组的帖子,但是 none 似乎回答了我的问题。
我有一个包含三列的 numpy 数组,分别是 A、B 和 Y。所有值都是 1 或 0。如果我在 A 列上应用过滤器,我想找出 Y 的结果值,即如果 A==0,那么我得到的 Y 值是多少。
例如,这是一个 numpy 数组
A B Y
0 0 1
1 0 0
0 0 1
0 0 0
所以如果我选择 A = 0,则 Y 变为 1,1,0。
当一列的结果取决于另一列中的值时,如果有人告诉我如何执行此操作(使用此示例),我将不胜感激。
您可以同时按行和列编制索引。第一维使用布尔索引,第二维使用整型索引:
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
注意 A
、B
、Y
等标签在常规 NumPy 数组中不存在。要选择特定的行或列,请使用 整数 索引,注意第一行或第一列的索引为 0
。 A[:, 0] == 0
returns 用于过滤第一维(行)的布尔数组。