Допустим, у нас есть массив numpy:
A = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
[10, 11, 12]])
Кто-нибудь может объяснить, почему эта строка используется для замены двух строк (в данном случае 1-й на 4-й)?
'A[[0, 3]] = A [[3, 0]]'
Вы спрашиваете, почему кто-то будет использовать этот метод? Или почему это работает?
Я это знаю. Я не понимал, как это работает, но знаю, что понимаю.
@GeorgePanailidis любезно примете мое решение в качестве ответа (щелкнув галочку рядом с ним), если вы концептуально понимаете его из моего ответа. Спасибо!
Вы одновременно обновляете позиции двух подмассивов.
Тем не менее, делая:
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]])
Если вы сомневаетесь в самом обозначении,
A[[3, 0]]
обращается к 4-й и 0-й строкам и назначает 0-ю и 4-ю строки