title: Smart way to convert polars to Cartesian coordinates with numpy
body: <p>I have an array of Cartesian coordinates produced from polars in a usual way:</p>
  
  <pre><code>for k in range(0, Phi_term):
      for j in range(0, R_term):
          X[k,j] = R[j]*np.cos(phi[k]);
          Y[k,j] = R[j]*np.sin(phi[k]);
  </code></pre>
  
  <p>The problem is that the zeroth element of such an array corresponds to the origin of the polar circle. I would like to have an array of the same elements but starting in the top right corner. For example, <strong>elements</strong> in the current array distribute in the following way (for the upper half):</p>
  
  <pre><code>11 10 9 6 7 8
  14 13 12 3 4 5
  17 16 15 0 1 2
  </code></pre>
  
  <p>(imagine it's a circle). What I want to get is the grid starting with the zeroth element:</p>
  
  <pre><code>0 1 2 3 4 5
  6 7 8 9 10 11
  12 13 14 15 16 17
  </code></pre>
  
  <p>though preserving the values, i.e. the value of the 11th element of the initial array is now the value of the 0th element of the new array.</p>
  
  <p>Is there any smart way to perform such a transformation in <code>numpy</code>?</p>