【发布时间】:2020-05-19 14:35:46
【问题描述】:
这是我的previous question 的概括。我需要找到两个不同数组列表之间的所有交叉点和差异。任何列表的数组内都没有交集,只有不同列表中的数组之间才有交集。
下一个示例的预期结果
x = [np.array([0, 6, 7, 10]), np.array([1, 2, 5, 9])]
y = [np.array([ 7, 10]), np.array([8]), np.array([0, 3, 4, 5])]
应该是
[[0], [6], [7, 10], [1, 2, 9], [5], [8], [3, 4]]
有什么建议吗?提前致谢!
【问题讨论】:
-
(0,6,7,10)和(7,10)之间的分解应该是什么?不应该是 (0,6) (7,10) 和 ( ) 吗?第三组应该是空的或什么都没有,因为 (7,10) 中没有不相交的部分。
-
在 (0,6,7,10) 和 (7,10) 之间,函数应该返回 (0,6) 和 (7,10),但在这种特殊情况下, (0, 6 ) 被进一步分解为 (0) 和 (6),因为 (0, 3, 4, 5) 中存在 0,但那里不存在 6。
-
我明白了。所以分解应该发生直到没有剩余的相交集?
-
是的,就是这样。
-
如果 u 和 v 中没有交集,但 u 中存在交集怎么办?像 u=[ (1,10),(2,10) ] 和 v=[(3,4),(5,6)]。来自 u 和 v 的任何一对数组之间没有任何交集。所以答案应该是 (1,10),(2,10)(3,4)(5,6) 吗?还是应该是(1),(10),(2),(3,4)(5,6)?
标签: python numpy set intersection difference