asignación de python en matriz vs escalar

Tengo una matriz 2DA de forma(4,3)y una matriz 1Da de forma(4,). Quiero intercambiar las dos primeras filas deA, así como los dos primeros elementos ena. Hice lo siguiente:

A[0,:],A[1,:] = A[1,:],A[0,:]
a[0],a[1] = a[1],a[0]

Al parecer, funciona paraa, pero falla porA. Ahora, la segunda fila se convierte en la primera fila, pero la primera fila permanece sin cambios. Si hago lo siguiente:

first_row_copy = A[0,:].copy()
A[0,:] = A[1,:]
A[1,:] = first_row_copy

Entonces, parece funcionar. ¿Por qué el primer método no funciona? (pero funciona paraa) Además, ¿cuál es la diferencia entreA_copy = A[0,:].copy() yA_copy = A[0,:]?

Respuestas a la pregunta(1)

Su respuesta a la pregunta