如何使用二进制列表拆分numpy数组?

3
如果我有一个numpy数组,比如说:
A = [[1,2],[3,4],[5,6],[7,8]]

以及一个列表

L = [1,0,1,1]

有没有一种方法可以根据L中的1/0将A沿轴0拆分?这将是我想要的结果:
A1 = [[1,2],[5,6],[7,8]]
A2 = [[3,4]]
1个回答

6

由于L是二进制的,您可以将L转换为布尔类型,然后使用布尔索引

A = np.array([[1,2],[3,4],[5,6],[7,8]])
L = np.array([1,0,1,1])

L = L.astype(bool)
A1, A2 = A[L], A[~L]

A1
#array([[1, 2],
#       [5, 6],
#       [7, 8]])

A2
#array([[3, 4]])

1
谢谢你的回答!我以前从未听说过二进制索引,所以这对我非常有帮助。 - Ammastaro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接