Python Numpy:过滤并行阵列
我有两个并行的numpy数组,我只想保留a值大于3的元素:Python Numpy:过滤并行阵列,python,numpy,Python,Numpy,我有两个并行的numpy数组,我只想保留a值大于3的元素: import numpy as np a = np.array([1, 2, 3, 4, 5]) b = np.array([0.1, 0.15, -0.3, 23.4, 112.5]) c = np.array(list(zip(a, b))) c = c[c[:, 0] > 3].T a = c[0] b = c[1] 我该怎么做呢?您可以使用布尔索引: a[a > 3] # array([ 4., 5.])
import numpy as np
a = np.array([1, 2, 3, 4, 5])
b = np.array([0.1, 0.15, -0.3, 23.4, 112.5])
c = np.array(list(zip(a, b)))
c = c[c[:, 0] > 3].T
a = c[0]
b = c[1]
我该怎么做呢?您可以使用布尔索引:
a[a > 3]
# array([ 4., 5.])
b[a > 3]
# array([ 23.4, 112.5])
请注意,如果实际执行第一行,将更改第二行的输出(并可能由于长度不匹配而引发异常?),如果不将结果赋回
a
,则不会更改,布尔索引不会修改数组。因为结果[23.4112.5]是b中唯一两个值大于3的结果,数组(['a','b','c','d','e'])是一个更清晰的例子
a, b = a[a > 3], b[a > 3]