title: What languages have similar or equivalent array slicing notation to Numpy & why is it not more common?
body: <p>Specifically when indexing n>3 dimensional arrays / vectors, why do more languages not adopt the:</p>
  
  <pre><code>arr = np.zeros((3, 10, 5, 100)) 
  arrSlice = arr[:, 0:5, :, :99]
  
  &gt;   arrSlice.shape
  &gt;   (3, 5, 5, 99)
  
  </code></pre>
  
  <p>style notation for slicing arrays (If I'm not just missing something)...?</p>
  
  <p>Do any other languages have equivalent notation to Numpy, either syntactically or functionally?</p>
  
  <p>Is this something where it's syntactic sugar over Numpy performing more linear looping in C that creates a dichotomy between python / C / cupy that's not available or sensible in other languages? (For e.g., I'm assuming numpy's batch operation notation ends up as sequential looping at a lower level at some point)</p>
  
  <p>Are tensors just not generally very useful / practical data structures outside of machine learning? If so is that more because of most languages not being easily able to execute array operations in parallel using GPUs? Or is it more that people tend not to want to think in multidimensional matrices? Something else? </p>
  
  <p>Are there alternatives in other languages that are equivalent or superior that I'm just not familiar with? It seems like most tend to focus along the first dimension for e.g.:</p>
  
  <pre><code>var x = [[0, 1], [2, 5], [3, 4]]
  
  let methodSlice = x.slice(0, 2)
  let spreadSlice = &amp;x[0..2];
  
  &gt; [[0, 1], [2, 5]] 
  </code></pre>
  
  <hr>
  
  <p>I miss this aspect of python more than anything else in it and it seems like tensors are comparatively less accessible elsewhere.</p>
  
  <p>Thanks ahead of time for any insight you might have, it is a bunch of questions but I couldn't find any equivalent question that had yet been asked.</p>