[Numpy-discussion] [SciPy-User] Why slicing Pandas column and then subtract gives NaN?

C W tmrsg11 at gmail.com
Fri Feb 15 16:48:25 EST 2019


Fair enough. Python has been called the #1 language for data science. If
I'm slicing a[2:5] out of range, why not throw an error. This is
disappointing!

I mean, why would you design a language to slice outside of range? Also, no
other language I know have this strange behavior.

On Fri, Feb 15, 2019 at 12:51 PM Paul Hobson <pmhobson at gmail.com> wrote:

>
>
> On Fri, Feb 15, 2019 at 5:12 AM Mike C <tmrsg11 at gmail.com> wrote:
>
>> The original data was in CSV format. I read it in using pd.read_csv(). It
>> does have column names, but no row names. I don’t think numpy reads csv
>> files.
>>
>
> If you read a file into a pandas structure, it will have row labels. The
> default labels are integers that correspond to the ordinal positions of the
> values.
>
> Numpy reads files.
>
> https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.loadtxt.html
>
> https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.genfromtxt.html
>
> I prefer file IO in pandas, so I don't know which function will better
> suite your needs.
>
> And also, when I do a[2:5]-b[:3], it does not throw any “index out of
>> range” error. I was able to catch that, but in both Matlab and R. You get
>> an error. This is frustrating!!
>>
>
> That's a feature of python in general, not numpy in particular. Every
> language has its own quirks. The more you immerse yourself in them, the
> quick you'll learn to adapt to them.
> -paul
>
>
>>
>>
>> ------------------------------
>> *From:* NumPy-Discussion <numpy-discussion-bounces+tmrsg11=
>> gmail.com at python.org> on behalf of Juan Nunez-Iglesias <
>> jni.soma at gmail.com>
>> *Sent:* Friday, February 15, 2019 4:15 AM
>> *To:* Discussion of Numerical Python
>> *Subject:* Re: [Numpy-discussion] [SciPy-User] Why slicing Pandas column
>> and then subtract gives NaN?
>>
>>
>> I don’t have index when I read in the data. I just want to slice two
>> series to the same length, and subtract. That’s it!
>>
>> I also don’t what numpy methods wrapped within methods. They work, but
>> hard do understand.
>>
>> How would you do it? In Matlab or R, it’s very simple, one line.
>>
>>
>> Why are you using pandas at all? If you want the Matlab equivalent, use
>> NumPy from the beginning (or as soon as possible). I personally agree with
>> you that pandas is too verbose, which is why I mostly use NumPy for this
>> kind of arithmetic, and reserve pandas for advanced data table type
>> functionality (like groupbys and joining on indices).
>>
>> As you saw yourself, a.values[1:4] - b.values[0:3] works great. If you
>> read in your data into NumPy from the beginning, it’ll be a[1:4] - b[0:3]
>> just like in Matlab. (Or even better: a[1:] - b[:-1]).
>> _______________________________________________
>> NumPy-Discussion mailing list
>> NumPy-Discussion at python.org
>> https://mail.python.org/mailman/listinfo/numpy-discussion
>>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at python.org
> https://mail.python.org/mailman/listinfo/numpy-discussion
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20190215/2d909ee1/attachment-0001.html>


More information about the NumPy-Discussion mailing list