@Physicist: Простая индексация для одного значения делает копии (в этом случае нечего получить, избегая копирования памяти).
я есть 2D массивA
формы(4,3)
и одномерный массивa
формы(4,)
, Я хочу поменять местами первые два ряда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,:]
?