title: In Python 3, how to swap two sub-arrays in a 2-dimensional numpy array?
body: <p>Suppose there is an 2-dimensional numpy array (or matrix in maths) named "A", I want to swap its 1st row with another row "n". n is can be any natural number. The following codes do not work</p>
  
  <pre><code>A = np.eye(3)
  n = 2
  A[0], A[n] = A[n], A[0]
  print(A)
  </code></pre>
  
  <p>you can see it gives (I show the matrix form A for simplicity)</p>
  
  <pre><code>A = 
     0, 0, 1
     0, 1, 0
     0, 0, 1
  </code></pre>
  
  <p>But what I want is</p>
  
  <pre><code>A =
     0, 0, 1
     0, 1, 0
     1, 0, 0
  </code></pre>
  
  <p>I thought about one solution is introducing another matrix "B" which is equal to "A", but "A" and "B" are different objects. Then do this</p>
  
  <pre><code>A = np.eye(3)
  B = np.eye(3)
  A[0], A[n] = B[n], B[0]
  </code></pre>
  
  <p>This can give the correct swap on A. But it needs an additional matrix "B", I don't know if it is computational efficient. Or maybe you have better idea? Thanks :)</p>