基于列表从二维Numpy数组中删除元素

2024-05-15 21:09:25 发布

您现在位置:Python中文网/ 问答频道 /正文

提前感谢您查看我的帖子

我有一个名为actions的2d np.array,其形状(2,x)包含ints

我还有另一个1d np.arraykeys,其中的元素类型与actions: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]] 

错误:由于某种原因,diff阵列的亮度变为(2,1,80),我不知道! The dimentions of the diff array become (2,1,80)


Tags: theactions元素类型npnotdiff数组
2条回答

以下内容将筛选出在集合keys中具有第一行条目的actions列:

import numpy as np
x = 10
actions = np.random.randint(5, size=(2,x))
print(actions)
keys = np.array([1,2,3])
print(keys)
filtered_actions = actions[:,~np.sum([actions[0,:] == key for key in keys], dtype=bool, axis=0)]
print(filtered_actions)

使用^{}

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

相关问题 更多 >