Return 值 < 40 的布尔数组

Return a boolean array of values < 40

如何从下面给定的数组中获取值 <40 的布尔值 1 维输出。因为有三个值 <40 所以输出应该是: array([ True, True, True])

x = np.array([[40, 37, 70],[62, 61, 98],[65, 89, 22],[95, 98, 81],[44, 32, 79]])

你可以这样做:

import numpy as np
x = np.array([[40, 37, 70],[62, 61, 98],[65, 89, 22],[95, 98, 81],[44, 32, 79]])
x<40

输出:

array([[False,  True, False],
       [False, False, False],
       [False, False,  True],
       [False, False, False],
       [False,  True, False]])

或者如果你想要一维结果,你可以使用.flatten():

y = x.flatten()
y<40

输出:

array([False,  True, False, False, False, False, False, False,  True,
       False, False, False, False,  True, False])

如果你想要像 [True]*n 这样的一维列表,其中 n 是值的数量 <40,你可以这样做:

np.array([i for i in x.flatten()<40 if i])

输出:

array([True, True, True])

这可以通过多种方式解决,一种可能是:

x[x<40]<40