在numpy中添加单个元素到数组

我有一个numpy数组包含:

[1, 2, 3] 

我想创build一个数组,其中包含:

 [1, 2, 3, 1] 

也就是说,我想将第一个元素添加到数组的末尾。

我已经尝试了显而易见的:

 np.concatenate((a, a[0])) 

但是我得到一个错误,说ValueError: arrays must have same number of dimensions

我不明白这一点 – 数组都只是一维数组。

我认为使用正确的方法添加元素更为正常:

 numpy.append(a, a[0]) 

a[0]不是数组,它是a的第一个元素,因此没有维数。

尝试使用a[0:1]来代替,它将返回单个项目数组中的第一个元素。

尝试这个

 np.concatenate((a, np.array([a[0]])) 

http://docs.scipy.org/doc/numpy/reference/generated/numpy.concatenate.html

连接需要两个元素是数组,但是[0]不是数组。 这就是为什么它不起作用。

 t = np.array([2, 3]) t = np.append(t, [4]) 

这可能有点矫枉过正,但我​​总是使用np.take函数进行环绕索引:

 >>> a = np.array([1, 2, 3]) >>> np.take(a, range(0, len(a)+1), mode='wrap') array([1, 2, 3, 1]) >>> np.take(a, range(-1, len(a)+1), mode='wrap') array([3, 1, 2, 3, 1]) 

假设a=[1,2,3] ,你希望它是[1,2,3,1]

您可以使用内置的附加function

 np.append(a,1) 

这里1是一个int,它可能是一个string,它可能或可能不属于数组中的元素。 打印: [1,2,3,1]

这个命令,

numpy.append(a, a[0])

不会改变a数组。 但是,它会返回一个新的修改过的数组。 所以,如果a修改的话

a = numpy.append(a,a[0])

必须使用。