如何使用二进制列表拆分 numpy 数组?
How to split a numpy array using a binary list?
如果我有一个 numpy 数组就说
A = [[1,2],[3,4],[5,6],[7,8]]
和一个列表
L = [1,0,1,1]
有没有一种方法可以根据 A 是否为 L 中的 1/0 来沿 axis0 拆分 A?这将是我想要的结果:
A1 = [[1,2],[5,6],[7,8]]
A2 = [[3,4]]
由于L
是二进制,可以把L
转成boolean类型,然后用boolean indexing:
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]])
如果我有一个 numpy 数组就说
A = [[1,2],[3,4],[5,6],[7,8]]
和一个列表
L = [1,0,1,1]
有没有一种方法可以根据 A 是否为 L 中的 1/0 来沿 axis0 拆分 A?这将是我想要的结果:
A1 = [[1,2],[5,6],[7,8]]
A2 = [[3,4]]
由于L
是二进制,可以把L
转成boolean类型,然后用boolean indexing:
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]])