<div dir="ltr"><div class="gmail_extra"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">JB,</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">
This behavior is a property of python slicing.  It takes some getting used to, but has its advantages.  In general in a slice [i:j] the indices go from i to j-1.  In the case that i is 0 it's easy to think of it as j giving the number of elements (by the way you can also do a[:j] -- i.e. leaving out the 0 -- and get the same result.  Maybe someone else could provide more background on why slicing is defined the way it is in python, but in the end you just have to get used to it.</div>
<div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Jon</div><br><div class="gmail_quote">On Tue, Feb 25, 2014 at 6:07 PM,  <span dir="ltr"><<a href="mailto:numpy-discussion-request@scipy.org" target="_blank">numpy-discussion-request@scipy.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id=":gu" class="a3s" style="overflow:hidden">From: JB <<a href="mailto:jonathan.j.buck@gmail.com">jonathan.j.buck@gmail.com</a>><br>
To: <a href="mailto:numpy-discussion@scipy.org">numpy-discussion@scipy.org</a><br>Cc: <br>Date: Tue, 25 Feb 2014 23:04:26 +0000 (UTC)<br>Subject: [Numpy-discussion] Help Understanding Indexing Behavior<br>At the risk of igniting a flame war...can someone please help me understand<br>

the indexing behavior of NumPy? I will readily I admit I come from a Matlab<br>
background, but I appreciate the power of Python and am trying to learn more.<br>
<br>
>From a Matlab user's perspective, the behavior of indexing in NumPy seems<br>
very bizarre. For example, if I define an array:<br>
<br>
x = np.array([1,2,3,4,5,6,7,8,9,10])<br>
<br>
If I want the first 5 elements, what do I do? Well, I say to myself, Python<br>
is zero-based, whereas Matlab is one-based, so if I want the values 1 - 5,<br>
then I want to index 0 - 4. So I type: x[0:4]<br>
<br>
And get in return: array([1, 2, 3, 4]). So I got the first value of my<br>
array, but I did not get the 5th value of the array. So the "start" index<br>
needs to be zero-based, but the "end" index needs to be one-based. Or to put<br>
it another way, if I type x[4] and x[0:4], the 4 means different things<br>
depending on which set of brackets you're looking at!<br>
<br>
It's hard for me to see this as anything by extremely confusing. Can someone<br>
explain this more clearly. Feel free to post links if you'd like. I know<br>
this has been discussed ad nauseam online; I just haven't found any of the<br>
explanations satisfactory (or sufficiently clear, at any rate).</div></blockquote></div><br><br><br clear="all"><div><br></div>-- <br><div dir="ltr">________________________________________________________<br>Jonathan D. Slavin                 Harvard-Smithsonian CfA<br>
<a href="mailto:jslavin@cfa.harvard.edu" target="_blank">jslavin@cfa.harvard.edu</a>       60 Garden Street, MS 83<br>phone: (617) 496-7981       Cambridge, MA 02138-1516<br>fax: (617) 496-7577            USA<br>________________________________________________________<br>
<br></div>
</div></div>