#python #arrays #numpy #append #numpy-ndarray
#python #массивы #numpy #добавить #numpy-ndarray
Вопрос:
предположим, у меня есть каждый массив размером 2
Arr1 =([[-4, 1],
[-3, 1],
[-2, 1],
[ 2, 1],
[ 3, 1],
[ 4, 1]])
Как я могу добавить / дописать 3-й элемент к каждому массиву, чтобы получить новый массив / вывод в виде:
New_Arr1=([[-4, 1, 0],
[-3, 1, 0],
[-2, 1, 0],
[ 2, 1, 0],
[ 3, 1, 0],
[ 4, 1, 0]]) ?
большое спасибо,
Сэм
Ответ №1:
Чтобы добавить 0 ко всем вложенным спискам, выполните:
for lst in Arr1:
lst.append(0)
(Обратите внимание, что в вашем выражении для Arr1
внешние скобки не имеют никакого эффекта. То, что у вас есть, — это список списков.)
Обратите внимание, что это изменение на месте Arr1
. Если вы хотите оставить его неизмененным и создать совершенно отдельный новый список списков, то у вас есть это в другом ответе, и я не буду его повторять, кроме упоминания, что синтаксис в ответе Азро предполагает Python 3 (который вы должны использовать), но если по какой-либо причине вы используете Python 2, тогда используйте вместо
new_Arr1 = [lst [0] for lst in Arr1]
Обновление: я вижу, что вы отметили numpy, так что, возможно, у вас действительно есть массив numpy, хотя вопрос не является явным по этому поводу.
Если это так, вы могли бы создать (новый, отдельный) расширенный массив, выполнив:
New_Arr1 = np.append(Arr1, np.zeros((Arr1.shape[0], 1), dtype=Arr1.dtype), axis=1)
(хотя это, конечно, не исключает, что существует какой-то более простой способ).
Комментарии:
1. вы поняли, это массив numpy. Это решило запрос. Спасибо, Алани
2. @Sam Вполне возможно, что появится любитель numpy и предложит более простое решение, имейте в виду … часто кажется, что есть много способов сделать что-то в numpy.
Ответ №2:
Вы можете сделать это легко с помощью понимания списка, для каждого массива создайте новые со своими значениями, а также 0
new_values = [[*val, 0] for val in values]