Измените конкретную строку/столбец массива NumPy

Как изменить конкретную строку или столбец массива NumPy?

Например, у меня есть массив NumPy следующим образом:

P = array([[1, 2, 3],
           [4, 5, 6]])

Как мне изменить элементы первого ряда, [1, 2, 3], на [7, 8, 9] чтобы P стало:

P = array([[7, 8, 9],
           [4, 5, 6]])

Точно так же, как я могу изменить значения второго столбца, [2, 5], на [7, 8]?

P = array([[1, 7, 3],
           [4, 8, 6]])

Ответ 1

Строки и столбцы массивов NumPy могут быть выбраны или изменены с использованием знака индексирования квадратной скобки в Python.

Чтобы выбрать строку в 2D-массиве, используйте P[i]. Например, P[0] вернет первую строку P.

Чтобы выбрать столбец, используйте P[:, i]. : по существу означает "выбрать все строки". Например, P[:, 1] выберет все строки из второго столбца P.

Если вы хотите изменить значения строки или столбца массива, вы можете назначить его новому списку (или массиву) значений одинаковой длины.

Чтобы изменить значения в первой строке, напишите:

>>> P[0] = [7, 8, 9]
>>> P
array([[7, 8, 9],
       [4, 5, 6]])

Чтобы изменить значения во втором столбце, напишите:

>>> P[:, 1] = [7, 8]
>>> P
array([[1, 7, 3],
       [4, 8, 6]])

Ответ 2

Аналогичным образом, если вы хотите выбрать только два последних столбца, например, но все строки, которые вы можете использовать:

print P[:,1:3]