【发布时间】:2016-07-30 18:46:37
【问题描述】:
我有一个类似的数组
a = np.array[ 4, 9, 3, 1, 6, 4, 7, 4, 2]
和一个大小相同的布尔数组(所以这是一个掩码)
boo = np.array[ True, True, False, False, True, True, True, False, True]
(boo 也可以以False 开头作为第一个条目...)
现在我想将 a 拆分为具有 2 个条件的新数组:
- 一个新的子数组只包含
Trueinboo的值 - 新的子数组总是在
False之后开始,在False之前结束。
所以结果是[[4, 9], [6, 4, 7], [2]]
我的想法是:
我知道我可以使用np.split 作为基础。
在这种情况下,它将是b = np.split(a, [2, 4, 7, 8],然后我只会从b 中提取第二个元素,从第一个元素开始,因为我在boo 中的第一个元素是True。
所以我的问题是:如何获取数组[2, 4, 7, 8]?
(用python循环不是一个选项,因为它太慢了。)
【问题讨论】: