我最近发现了 numpy.ediff1d
。
使用 numpy.ediff1d
相比于使用 numpy.diff
有何优势?另外,它的用例是什么?
在 numpy 1.16.0
之前,我们可以使用 ediff1d(ar, to_end, to_begin)
来填充 ar[1:] - ar[-1:]
的结果。但从 1.16.0
开始,diff()
支持填充并涵盖了 ediff1d()
的所有功能和更多内容。此外,对于布尔数组,在大多数情况下,diff()
具有相同的性能,并且优于 ediff1d()
。
另一个区别是 diff
的 prepend
和 append
参数在差异计算之前应用,而 ediff1d
的 to_begin
和 to_end
在差异计算之后应用(因此它们不是相似的参数)。
ediff1d
的注释提供了一些关于它在布尔数组上操作的信息,这可能是区别所在。 - Divakardiff
更好,但会忽略填充。 - P3trus