我有一个可以应用于数组a
的numpy布尔selector
数组。(在问题域中实际上不是随机的,这只是为了方便示例)。但我实际上希望仅使用selector
的前n个True条目(在本例中为n=3 )进行选择。那么,给定selector
加上一个参数n
,如何使用select_first_few
操作生成numpy,从而避免迭代循环?
>>> import numpy as np
>>> selector = np.random.random(10) > 0.5
>>> a = np.arange(10)
>>> selector
array([ True, False, True, True, True, False, True, False, True,
False])
>>> chosen, others = a[selector], a[~selector]
>>> chosen
array([0, 2, 3, 4, 6, 8])
>>> others
array([1, 5, 7, 9])
>>> select_first_few = np.array([ True, False, True, True, False, False, False, False, False,
... False])
>>> chosen_few, tough_luck = a[select_first_few], a[~select_first_few]
>>> chosen_few
array([0, 2, 3])
>>> tough_luck
array([1, 4, 5, 6, 7, 8, 9])
https://stackoverflow.com/questions/56994591
复制相似问题