【发布时间】:2021-05-09 01:51:19
【问题描述】:
假设我有一个数组a和一个布尔数组b,我想从a的每一行的有效元素中提取固定数量的元素。有效元素是b 指示的元素。
这是一个例子:
a = np.arange(24).reshape(4,6)
b = np.array([[0,0,1,1,0,0],[0,1,0,1,0,1],[0,1,1,1,1,0],[0,0,0,0,1,1]]).astype(bool)
x = []
for i in range(a.shape[0]):
c = a[i,b[i]]
d = np.random.choice(c, 2)
x.append(d)
这里我使用了一个 for 循环,如果这些数组又大又高维,它会很慢。有没有更有效的方法来做到这一点?谢谢。
【问题讨论】:
标签: arrays numpy numpy-ndarray array-broadcasting numpy-ufunc