我有以下的numpy数组
import numpy as np
X = np.array([[5.], [4.], [3.], [2.], [1.]])
我想在开头插入[6.]
。
我尝试过:
X = X.insert(X, 0)
如何往X中插入内容?
numpy有一个insert
函数,可以通过np.insert
进行访问,具有文档。
在这种情况下,您需要像这样使用它:
X = np.insert(X, 0, 6., axis=0)
第一个参数X
指定要插入的对象。
第二个参数0
指定位置。
第三个参数6.
指定要插入的内容。
第四个参数axis=0
指定在每列的位置0
进行插入。我们也可以选择行,但因为X是列向量,所以我觉得保持一致性更好。
aa =np.concatenate(([0]*99, aa))
...因为我在平滑之前操作信号,然后找到峰值。 - MohdX = np.append(arr = np.array([[6]]), values = X, axis= 0)
不要将6插入到现有的X中,而是将6附加在X后面。
因此,第一个参数 arr
是标量6的numpy数组,第二个参数是要添加的数组,第三个参数是我们想要添加的位置
我知道这是一个相当古老的问题,但一个简短的解决方案是使用numpy切片技巧:
np.r_[[[6.]], X]
arr = np.random.rand(1000000)
%timeit np.concatenate(([-1],arr))
1.33 ms ± 23.1 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
arr = np.random.rand(1000000)
%timeit np.asarray([-1] + list(arr))
63.7 ms ± 691 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
arr = np.random.rand(1000000)
%timeit np.r_[-1,arr]
1.41 ms ± 35.1 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
arr = np.random.rand(1000000)
%timeit np.insert(arr,0,-1)
1.39 ms ± 24.7 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)