首页 > 解决方案 > 根据列表从二维 Numpy 数组中删除元素

问题描述

提前感谢您查看我的帖子。

我有一个名为 (2,x) 的二维 np.array actions,其中包含ints

我有另一个 1d np.arraykeysactions: 的第一个维度具有相同类型的元素actions[0]。我想从actions所有数组元素中删除keys. 我试过diff = actions[:, not actions[0] == kids_keys]了,但它返回一个 (1,2,x) 形状的 3d 数组。

我怎样才能得到一个 (2,x)diff数组?

例如:

actions = [[121122, 211122, 221122, ... 455544, 545544][0, 0.35, 0.75, ... 1, -0.25]]
keys = [211122 221122]
# The operation I am looking for:
actions - keys = [[121122, ... 455544, 545544][0, ... 1, -0.25]] 

错误:由于某种我不知道的原因,差异数组的维度变为(2,1,80)! diff 数组的维度变为 (2,1,80)

标签: pythonarraysnumpymultidimensional-arrayconditional-statements

解决方案


使用np.isin

mask = np.isin(actions[0], keys, invert=True)
result = actions[:, mask]

推荐阅读