On Tue, 2024-10-08 at 09:34 +0100, Kevin Sheppard via NumPy-Discussion
wrote:
> Can anyone shed some light on the expected behavior of code using
> array(..., copy=True) with pandas objects? We ran into this in
> statsmodels
> and I think there are probably plenty of places where we explicitly
> call
> array(..., copy=True) and think we should have a totally independent
> copy
> of the data. One workaround is to use
> np.require(...,requirements="O") but
> it would help to understand the expected behavior.
This is a bug in pandas, which added but ignored `copy=` in their
`__array__` methods:
https://github.com/pandas-dev/pandas/issues/57739
It probably makes sense bumping there. NumPy could assume it isn't
correctly implemented, but that would be weird also...
(Objects that did nothing would get correct behavior but with a
DeprecationWarning.)
- Sebastian
>
> Here is a simple example:
>
> import numpy as np
> import pandas as pd
>
> weeks = 2
> now = pd.to_datetime('2024-01-01')
> testdata = pd.DataFrame(columns=['dates', 'values'])
> rg = np.random.default_rng(0)
> testdata['dates'] = pd.date_range(start=now, periods=weeks * 7,
> freq='D')
> testdata['values']=rg.integers(0, 100, size=(weeks * 7))
>
> values = testdata['values']
> print("*"*10, " Before ", "*"*10)
> print(values.head())
> arr = np.array(values, copy=True)
> arr.sort()
> print("*"*10, " After ", "*"*10)
> print(values.head())
> print("*"*10, " Flags ", "*"*10)
> print(arr.flags)
>
> This produces
>
> ********** Before **********
> 0 85
> 1 63
> 2 51
> 3 26
> 4 30
> Name: values, dtype: int64
> ********** After **********
> 0 1
> 1 4
> 2 7
> 3 17
> 4 26
> Name: values, dtype: int64
> ********** Flags **********
> C_CONTIGUOUS : True
> F_CONTIGUOUS : True
> OWNDATA : False
> WRITEABLE : True
> ALIGNED : True
> WRITEBACKIFCOPY : False
>
> Thanks,
> Kevin
> _______________________________________________
> NumPy-Discussion mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
> https://mail.python.org/mailman3/lists/numpy-discussion.python.org/
> Member address: [email protected]
_______________________________________________
NumPy-Discussion mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/numpy-discussion.python.org/
Member address: [email protected]