atribuição de python em array vs escalar

Eu tenho uma matriz 2DA de forma(4,3)e uma matriz 1Da de forma(4,). Eu quero trocar as duas primeiras linhas deA, bem como os dois primeiros elementos ema. Eu fiz o seguinte:

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

Aparentemente, funciona paraa, mas falha paraA. Agora, a segunda linha se torna a primeira linha, mas a primeira linha permanece inalterada. Se eu fizer o seguinte:

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

Então, parece funcionar. Por que o primeiro método não funciona? (mas trabalha paraa) Além disso, qual é a diferença entreA_copy = A[0,:].copy() eA_copy = A[0,:]?

questionAnswers(1)

yourAnswerToTheQuestion