【问题标题】:How to "push and shift" an element in a numpy array most efficiently? [duplicate]如何最有效地“推送和移动”numpy数组中的元素? [复制]
【发布时间】:2019-11-11 01:03:03
【问题描述】:

我正在尝试在删除第一个元素(即“shift " 数组)。所以基本上,添加我的数组x后,最后添加的(4)形数组应该被删除。

如何以计算上最有效的方式做到这一点?

【问题讨论】:

  • 你能提供一个小例子吗?
  • 移动 n-1 行以为新行腾出空间的明显方法涉及大量复制 - 实际上每次添加都会创建一个新数组。但是对于某些类型的访问,您无需移动即可获得,只需跟踪您将新数据放在哪里。另一种方法是从比n 大得多的数组开始。一般来说,虽然 numpy 数组不是环形缓冲区的最佳选择。

标签: python numpy


【解决方案1】:

您正在描述一个环形缓冲区。只需使用一个普通的 NumPy 数组加上一个整数,它会告诉你哪一行是“顶部”。要推送,只需将“顶部”行替换为新行并增加顶部索引。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-13
    • 2017-08-12
    • 2010-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多