在numpy中在数组开头添加元素并删除末尾元素

7
什么是在numpy数组开头添加一个新元素并删除该数组的最后一个元素的最佳方法?
我使用了如下代码:
tmp = np.array([1,2,3])
print(tmp)
tmp = np.insert(tmp,0,0)
tmp = np.delete(tmp,-1)
print(tmp)

所以我得到了想要的:

[1 2 3]
[0 1 2]

但我怀疑有更好的方法来做到这一点。

2
这样做一次还不错,但在整个算法的上下文中,似乎有更好的方法来处理事情。 - user2357112
1
为了提高效率(性能、内存),我认为应该使用np.concatenate(([0], tmp[:-1])) - Divakar
1个回答

9
一种更简洁的做法是:
tmp = np.insert(tmp[0:-1], 0, 0)

或者

tmp = np.append([0], tmp[0:-1])

或者

tmp = np.concatenate(([0], tmp[0:-1]))

如果你想在数组的特定位置插入元素,那么使用.insert方法是一种干净的方法,但如果你要在0号(或末尾)位置添加元素,则连接可能更高效。
一个简单的时间检测表明,对于连接操作每个循环需要2.07微秒,对于追加操作每个循环需要5.47微秒,而对于插入操作每个循环需要12.7微秒(这不是衡量时间的完美方式,但它可以给出一个大致的估计)。

谢谢你的回答! - PhilNox

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接