Обозначение замены строк в массиве numpy в Python

Допустим, у нас есть массив numpy:

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

    

Кто-нибудь может объяснить, почему эта строка используется для замены двух строк (в данном случае 1-й на 4-й)?

'A[[0, 3]] = A [[3, 0]]'

Если вы сомневаетесь в самом обозначении, A[[3, 0]] обращается к 4-й и 0-й строкам и назначает 0-ю и 4-ю строки

sai 12.12.2020 01:03

Вы спрашиваете, почему кто-то будет использовать этот метод? Или почему это работает?

wwii 12.12.2020 01:29

Я это знаю. Я не понимал, как это работает, но знаю, что понимаю.

George Panailidis 12.12.2020 01:33

@GeorgePanailidis любезно примете мое решение в качестве ответа (щелкнув галочку рядом с ним), если вы концептуально понимаете его из моего ответа. Спасибо!

David Erickson 12.12.2020 03:12
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
5
239
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы одновременно обновляете позиции двух подмассивов.

Тем не менее, делая:

A[0] = A[3]
A[3] = A[0]

не сработает, потому что подмассив A[0] уже обновлен, поэтому нужно сделать это одновременно с:

A[[0, 3]] = A [[3, 0]]
A
array([[10, 11, 12],
       [ 4,  5,  6],
       [ 7,  8,  9],
       [ 1,  2,  3]])

Другие вопросы по теме