[Numpy-discussion] How is NumPy implemented?

Tom Denniston tom.denniston at alum.dartmouth.org
Thu Jun 28 16:33:21 EDT 2007


That is normal python syntax.  It works with lists.  What is slightly
unusual is the multi-dimensional slicing as in arr[:,10:20].  However,
this is governed by the way python translates bracket[] index calls to
the __getitem__ and __getslice__ methods.  You can try it out yourself
in ipython or your favorite interpretter by writing the following
class:

In [4]: class GetItemInspect(object):
   ...:     def __getitem__(self, slices):
   ...:         print slices
   ...:
   ...:

In [5]: GetItemInspect()[:,:,10:]
(slice(None, None, None), slice(None, None, None), slice(10, None, None))

This allows you to play with the translation semantics.  I'm sure they
are also documented somewhere but I usually find trying many examples
helpful.


--Tom



On 6/28/07, Geoffrey Zhu <gzhu at peak6.com> wrote:
> Hi All,
>
> I am curious how numpy is implemented. Syntax such as x[10::-2] is
> completely foreign to Python. How does numpy get Python to support it?
>
> Thanks,
> Geoffrey
>
> PS. Ignore the disclaimer. The mail server automatically insert that.
>
> _______________________________________________________=0A=
> =0A=
> The  information in this email or in any file attached=0A=
> hereto is intended only for the personal and confiden-=0A=
> tial  use  of  the individual or entity to which it is=0A=
> addressed and may contain information that is  propri-=0A=
> etary  and  confidential.  If you are not the intended=0A=
> recipient of this message you are hereby notified that=0A=
> any  review, dissemination, distribution or copying of=0A=
> this message is strictly prohibited.  This  communica-=0A=
> tion  is  for information purposes only and should not=0A=
> be regarded as an offer to sell or as  a  solicitation=0A=
> of an offer to buy any financial product. Email trans-=0A=
> mission cannot be guaranteed to be  secure  or  error-=0A=
> free. P6070214
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion at scipy.org
> http://projects.scipy.org/mailman/listinfo/numpy-discussion
>



More information about the NumPy-Discussion mailing list