首页 > 解决方案 > 格式化多维数组

问题描述

如何编写一个函数来隔离二维数组中的0s 和s。1所以功能是将位分成块。

[[     0  38846]
 [     1  51599]
 [     0  51599]
 [     1  52598]
 [     0 290480]
 [     0 360467]]

预期输出:

Ones = 51599 ,52598
Zeroes = 38846, 51599, 290480, 360467 

标签: pythonarraysfunctionnumpymultidimensional-array

解决方案


我不确定我是否在关注。您是在寻找一种特定的方法,比如 numpy 还是列表理解足够好?无论如何,这里有一些例子:

x = array([[     0,  38846],
           [     1,  51599],
           [     0,  51599],
           [     1,  52598],
           [     0, 290480],
           [     0, 360467]])

#List comprehension
ones  = [v for b,v in x if b]
zeros = [v for b,v in x if b==0]

#Numpy access
ones  = x[x[:,0]==1][:,1]
zeros = x[x[:,0]==0][:,1]

推荐阅读