如何找到一个numpy数组的所有元素,该数组可以被另一个数组的至少一个元素精确划分



例如,输入是2个numpy数组:a = np.array([3, 8, 5])b = np.array([6, 11, 10, 9, 17])输出是数组b中的元素,这些元素可以被a中的至少一个元素精确分割:6、10、9

基于numpy的解决方案可能如下:

>>> check = b[:, np.newaxis] % a == 0
>>> b[np.any(check, axis=1)]
array([ 6, 10,  9])

假设这些数组是1D,您可以通过简单的列表理解来完成:

[x for x in b if any([x % y == 0 for y in a])]

最新更新