对于numpy数组,我要执行以下操作:
- 将
x[1],...,x[n-1]
移到x[0],...,x[n-2]
(左移) - 在最后一个索引中写入新值:
x[n-1] = newvalue
。
这类似于一个pop()
,push(newvalue)
的先进先出队列(仅倒置)。
一个简单的实现是:x[:-1] = x[1:]; x[-1] = newvalue
。
另一个使用np.concatenate
的实现速度较慢:np.concatenate((x[1:], np.array(newvalue).reshape(1,)), axis=0)
。
有最快的方法吗?
Tags:
经过一些实验,很明显:
nparray
(numpy数组),最快、最简单的方法是切片和复制。所以解决办法是:
x[:-1] = x[1:]; x[-1] = newvalue
。以下是一个小基准:
但是如果不需要快速访问数组中的所有值,而只需要访问第一个或最后一个值,那么使用^{} 会更聪明。
相关问题 更多 >
编程相关推荐