我需要按照另一个数组b
中的条件过滤数组a
。
例如,只有当数组b
中相同位置的值等于0时,才应该保留数组a
中的值,否则将返回None
。举个例子:
a = np.array([2, 2, 4, 0, 4, 3, 3, 3, 1, 2])
被遮蔽
b = np.array([0, 0, 0, 1, 0, 3, 0, 5, 0, 0])
返回
c: [2, 2, 4, None, 4, None, 3, None, 1, 2]
我已经尝试过。
to_change = np.ma.masked_where(travel_time!=0, new_subareas)
但是这个返回值为:
masked_array(data=[2, 2, 4, --, 4, --, 3, --, 1, 2],
mask=[False, False, False, True, False, True,
False, True, False, False],
fill_value=999999)
但我找不到任何可以像给出c的示例那样返回结果的内容。
我需要在完全使用numpy
且没有for循环或if语句的情况下完成,以便处理非常大的数组。 我错过了什么?
a
的原地解决方案就足够了? - jpp