title: fill off diagonal of numpy array fails
body: <p>I'm trying to the fill the offset diagonals of a matrix:</p>
  
  <pre><code>loss_matrix = np.zeros((125,125))
  
  np.diagonal(loss_matrix, 3).fill(4)
  
  ValueError: assignment destination is read-only
  </code></pre>
  
  <p>Two questions:</p>
  
  <p>1) Without iterating over indexes, how can I set the offset diagonals of a numpy array?</p>
  
  <p>2) Why is the result of <code>np.diagonal</code> read only?  The documentation for numpy.diagonal reads: "In NumPy 1.10, it will return a read/write view and writing to the returned array will alter your original array."</p>
  
  <pre><code>np.__version__
  
  '1.10.1'
  </code></pre>