gpt4 book ai didi

python - 如何检查两片 numpy 数组是否相同(或重叠)?

转载 作者:太空狗 更新时间:2023-10-29 20:52:32 25 4
gpt4 key购买 nike

我想检查两个 ndarray 是否是同一底层 ndarray 的重叠 View 。

要检查两个切片是否完全相同,我可以这样做:

a.base is b.base and a.shape == b.shape and a.data == b.data

缓冲区的比较似乎在一个简单的案例中有效——谁能告诉我它是否普遍有效?

不幸的是,这不适用于重叠切片,而且我还没有弄清楚如何从缓冲区中准确提取其在基础数据中的偏移量——也许有人可以帮我解决这个问题?

此外,假设abx的切片,c的切片>b。由于底层数据相同,我还想检测 ca 之间的重叠。看来我应该能够通过比较缓冲区和形状来逃避......如果有人能确切地告诉我如何,我将不胜感激。

最佳答案

numpy.may_share_memory()是我们目前最好的启发式方法。它是保守的启发式的;它可能会给你误报,但不会给你误报。我认为可能有一些方法可以将启发式改进为 100% 正确。如果他们成功了,他们将被纳入该职能,所以这是最好的前进方式。

关于python - 如何检查两片 numpy 数组是否相同(或重叠)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10747748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com