在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])
必须使用。