我有以下示例收入和成本数组:
收入:
np.array([[[0,1, 1],
[-1, 0, 1],
[-1, -1, 0]],
[[0,0, 1],
[0, 0, 1],
[-1, -1, 0]]])
费用:
np.array([[[0,0.5, 0.4],
[-0.5, 0, 3],
[-0.4, -3, 0]],
[[0,0, 0.3],
[0, 0, 0.3],
[-0.3, -0.3, 0]]])
我有一个条件数组,该条件数组是通过多个条件语句得出的:
np.array([[[False, True, True],
[False, False, True],
[False, False, False]],
[[False, False, False],
[False, False, True],
[False, False, False]]])
我想要收入[条件]和成本[条件],或者想按条件数组分割/过滤收入/成本数组。但是我想要这样:
收入[条件]:
np.array([[[0,1, 1],
[0, 0, 1],
[0, 0, 0]],
[[0,0, 0],
[0, 0, 1],
[0, 0, 0]]])
费用[条件]:
np.array([[[0,0.5, 0.4],
[0, 0, 3],
[0, 0, 0]],
[[0,0, 0.3],
[0, 0, 0.3],
[0, 0, 0]]])
我一直在修补np.where
和np.take
的位置,但是无法得到我想要的东西。
答案 0 :(得分:1)
相乘而不是索引。 False代表0,True代表1。
答案 1 :(得分:1)
使用 np.where 来利用索引
revenue[np.where(condition!=True)] = 0
cost[np.where(condition!=True)] = 0
答案 2 :(得分:0)
创建零数组并使用布尔条件分配给它。
例如:
zero_cost = np.zeros_like(cost)
zero_cost[condition] = cost[condition]