【问题标题】:Equivalent to R runmin and runmax functions in Python? [closed]相当于 Python 中的 R runmin 和 runmax 函数? [关闭]
【发布时间】:2017-01-17 22:22:40
【问题描述】:

我正在尝试将一些 R 脚本翻译成 Python,但我无法从 caTools (Link to caTools documentation) 中找到与 runminrunmax 等效的内容。

这是R代码:

shift <- 250
...
min <- runmin(Array, k = shift, align = "right")
max <- runmax(Array, k = shift, align = "right")

【问题讨论】:

  • 那么runmin runmax在[R]中做了什么?
  • 许多 Python 开发人员不熟悉 runmaxrunmin [R]。请举例说明它的作用
  • 我在执行脚本时所理解的,它返回一个已排序的列,而不是所有内容都已排序。看起来那个 shift 参数正在做一些事情,比如设置一个间隔。
  • 来吧,投反对票……真的吗?
  • 我没有跳上downvote火车,但查找runminrunmax的文档并至少能够解释它 tiny 有点像基本的尽职调查。您的评论 “它返回一个已排序的列,并非所有内容都已排序。看起来 shift 参数正在做某事,例如设置间隔” 让您在询问之前似乎没有付出太多努力问题。

标签: python r python-2.7 numpy


【解决方案1】:

我假设您的意思是runmin and runmax from caTools

在 Python 中,您可以使用来自 scipy 的 minfiltermaxfilterrunmin中的k参数相当于移动窗口的size参数。

>>> from scipy.ndimage import minimum_filter, maximum_filter
>>> minimum_filter([5, 6, 4, 7, 8, 9, 10], size=3)
array([5, 4, 4, 4, 7, 8, 9])

>>> maximum_filter([5, 6, 4, 7, 8, 9, 10], size=3)
array([ 6,  6,  7,  8,  9, 10, 10])

但是它不支持align。应该可以改用origin

>>> maximum_filter([5, 6, 4, 7, 8, 9, 10], size=3, origin=1)
array([ 6,  6,  6,  7,  8,  9, 10])
>>> maximum_filter([5, 6, 4, 7, 8, 9, 10], size=3, origin=-1)
array([ 6,  7,  8,  9, 10, 10, 10])

我会说右对齐等于origin=(size//2)(或否定),但您可能需要自己验证这一点。

【讨论】:

  • 是的,来自 caTools。很有意思!我会挖掘 min 和 maxfilter 谢谢。
猜你喜欢
  • 2022-01-07
  • 2017-05-10
  • 2017-08-21
  • 1970-01-01
  • 2022-01-19
  • 1970-01-01
  • 2020-01-16
  • 1970-01-01
  • 2013-03-11
相关资源
最近更新 更多