(4,3)
의 모양이 A
이고 1 차원 배열 a
이 모양이 (4,)
인 2D 배열이 있습니다. 먼저 A
의 처음 두 행과 a
의 처음 두 요소를 교환하고 싶습니다.배열 대 대 스칼라에서의 파이썬 할당
A[0,:],A[1,:] = A[1,:],A[0,:]
a[0],a[1] = a[1],a[0]
분명히, 그것은 a
을 위해 작동하지만, A
실패 : 나는 다음과 같은 않았다. 이제 두 번째 행이 첫 번째 행이되지만 첫 번째 행은 변경되지 않습니다. 다음과 같이하면 :
first_row_copy = A[0,:].copy()
A[0,:] = A[1,:]
A[1,:] = first_row_copy
그런 다음 작동하는 것 같습니다. 첫 번째 방법이 효과가없는 이유는 무엇입니까? (그러나 a
에서 작동) A_copy = A[0,:].copy()
과 A_copy = A[0,:]
의 차이점은 무엇입니까?
그러면 'a'가 왜 작동합니까? 그것은 numpy 슬라이스가 아니기 때문에 기본적으로 복사를 만들고 있습니까? – Physicist
@ 물리학 자 : 단일 값에 대한 일반 색인화는 사본을 만듭니다 (이 경우 메모리를 복사하지 않아도 얻을 수있는 것은 없습니다). – ShadowRanger