我有两个内部带有数组的Python数组:

first = [[0,10],[0,11],[0,12],[0,13]]
second = [[0,10],[0,11]]

我希望得到的结果是第一个数组中的数组,而不是另一个中的数组:

difference(first,second)
#returns [[0,12],[0,13]]

目前它们是Numy数组,但具有规则数组的解决方案也是有效的.

我try 使用np.setdiff1d,但它返回了一个带有独占整数的数组,而不是独占array. 我试图遍历第二个数组,删除第一个数组中的元素:

diff = first.view()
for equal in second:
     diff = np.delete(diff, np.where(diff == equal))

但它返回了类似的、没有用的结果

推荐答案

您可以使用常规的旧的Python列表(而不是NumPy数组)和简单的列表理解来做到这一点:

>>> diff = [lst for lst in first if lst not in second]
>>> diff
[[0, 12], [0, 13]]

Python相关问答推荐

将数组操作转化为纯numpy方法

在Python中添加期货之间的延迟

PyTorch卷积自动编码器,输出维度与输入不同

来自ARIMA结果的模型方程

如何对行使用分段/部分.diff()或.pct_change()?

如何将我的位置与光强度数据匹配到折射图案曲线中?

过滤绕轴旋转的螺旋桨

将行从一个DF添加到另一个DF

DuckDB将蜂巢分区插入拼花文件

Polars比较了两个预设-有没有方法在第一次不匹配时立即失败

如果条件为真,则Groupby.mean()

试图找到Python方法来部分填充numpy数组

如何让程序打印新段落上的每一行?

如何使用它?

如何在Raspberry Pi上检测USB并使用Python访问它?

在含噪声的3D点网格中识别4连通点模式

无论输入分辨率如何,稳定扩散管道始终输出512 * 512张图像

matplotlib + python foor loop

手动设置seborn/matplotlib散点图连续变量图例中显示的值

在Python中使用yaml渲染(多行字符串)