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

标签 python numpy numpy-ndarray

如果我有一个 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]])

关于python - 如何使用二进制列表拆分 numpy 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51545014/

相关文章:

python - 多维形状的 np.zeros 结构

python - 如何在 Python 函数中向 NumPy 数组添加元素

javascript - 从 html/js 返回数据到 python

python - 在 Python+numpy 中将字节类型转换为 uint64 数组

python - 对具有屏蔽索引的 numpy 数组进行矢量化求和运算

python - 多次将 numpy.argpartition() 分配给列表元素时出现内存泄漏

python - NumPy ndarrays 与 Python 的列表

python - Caffe for windows 中的未知图层类型(裁剪)

python - Pandas read_csv 在具有空字符的列上失败

python - ubuntu 上笔记本电脑的电源状态