Подтвердить что ты не робот

Добавить один элемент в массив в numpy

У меня есть массив numpy, содержащий:

[1, 2, 3]

Я хочу создать массив, содержащий:

[1, 2, 3, 1]

То есть, я хочу добавить первый элемент в конец массива.

Я пробовал очевидное:

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

Но я получаю сообщение об ошибке ValueError: arrays must have same number of dimensions

Я этого не понимаю - массивы - это всего лишь 1d массивы.

4b9b3361

Ответ 1

Я думаю, что более нормально использовать правильный метод для добавления элемента:

numpy.append(a, a[0])

Ответ 2

a[0] не является массивом, он является первым элементом a и поэтому не имеет измерений.

Попробуйте вместо этого использовать a[0:1], который вернет первый элемент a внутри одного массива элементов.

Ответ 4

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

Ответ 5

Это может быть немного избыточным, но я всегда использую функцию 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])

Ответ 6

Скажем a=[1,2,3], и вы хотите, чтобы он был [1,2,3,1].

Вы можете использовать встроенную функцию добавления

np.append(a,1)

Здесь 1 - это int, это может быть строка, и она может принадлежать или не принадлежать элементам в массиве. Печать: [1,2,3,1]

Ответ 7

Эта команда,

numpy.append(a, a[0])

не изменяет массив a. Однако он возвращает новый модифицированный массив. Итак, если требуется модификация a, то

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

.