0

Как изменить одно значение в массиве NumPy?

7

Я хочу изменить один элемент массива. У меня есть следующий массив:

A = np.array([[1, 2, 3, 4],
              [5, 6, 7, 8],
              [9, 10, 11, 12],
              [13, 14, 15, 16]])

Я хочу заменить значение A[2][1] = 10 на A[2][1] = 150. Как я могу это сделать?

2 ответ(ов)

0

Да, именно этого вы добиваетесь. Просто индексируйте элемент и присвойте ему новое значение.

Вот пример:

A[2, 1] = 150

A
Out[345]: 
array([[ 1,  2,  3,  4],
       [ 5,  6,  7,  8],
       [ 9, 150, 11, 12],
       [13, 14, 15, 16]])

В этом коде вы изменяете значение элемента на позиции (2, 1) в массиве A на 150. Как видно из вывода, изменение прошло успешно.

0

Ваш вопрос касается создания массивов в NumPy и работы с многомерными массивами. Давайте разберем вашу проблему.

Во-первых, ошибка, которую вы получаете:

TypeError: array() takes from 1 to 2 positional arguments but 4 were given

возникает из-за неправильного использования функции np.array(). Эта функция принимает один или два аргумента: первый — это итерируемый объект, например, список или кортеж, а второй — это тип данных. В вашем случае вы передали четыре отдельных списка в качестве аргументов, вместо того чтобы объединить их в один.

Правильный способ создания двумерного массива в NumPy выглядит следующим образом:

import numpy as np

a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]])
print(a)

Таким образом, переменная a будет содержать массив из массивов, и это именно то, что вам нужно.

После этого, чтобы изменить значение на определенной позиции, вы можете обратиться к элементу массива, используя индексы. Например:

a[2][1] = 150
print(a)

Этот код изменит второй элемент (индекс 1) третьего подмассива (индекс 2) на 150.

Имейте в виду, что в Python использование нижнего регистра для имен переменных является хорошей практикой, поэтому ваше название a вполне корректно.

В итоге, чтобы избежать ошибки и правильно работать с многомерными массивами, всегда используйте вложенные списки при создании массива с помощью np.array().

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь