考虑三个 numpy 数组:
x = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
y = np.array([0, 1, 0, 1, 0, 1, 0, 1, 0, 1])
z = np.array([0, 0, 1, 1, 0, 0, 1, 1, 0, 0])
如何从 x
生成数组,其中满足涉及 y
和 z
的条件。
例如 "extract x where y+z = 2"
会返回:
np.array([3, 7])
(因为我有很多数据,我希望它尽可能快)
最佳答案
>>> x = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> y = np.array([0, 1, 0, 1, 0, 1, 0, 1, 0, 1])
>>> z = np.array([0, 0, 1, 1, 0, 0, 1, 1, 0, 0])
>>> y + z == 2
array([False, False, False, True, False, False, False, True, False, False], dtype=bool)
# here y+z==2 returns a boolean array that can be used to index x
>>> x[y + z == 2]
array([3, 7])
关于python - 如何选择满足条件的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23184685/