Closed zxdawn closed 5 years ago
Thanks for the issue @zxdawn . Did you try doing this?
NotImplementedError: min is not available with skipna=False with the installed version of numpy; upgrade to numpy 1.12
@max-sixty Actually, I'm using numpy = 1.13.1 and I need skipna= True. Don't understand the error it shows.
I think this may have been fixed by https://github.com/pydata/xarray/pull/2924 (which removed the line with dtypes.fill_value(value.dtype) if valid_count == 0 else data
)
Can you try upgrading to xarray 0.12.3?
@shoyer Thank. It works now. But, I get another question.
This is the result of t = ds['time_utc']
:
<xarray.DataArray 'time_utc' (time: 1, scanline: 357, ground_pixel: 450)>
array([[[nan, nan, ..., nan, nan],
[nan, nan, ..., nan, nan],
...,
[nan, nan, ..., nan, nan],
[nan, nan, ..., nan, nan]]], dtype=object)
Coordinates:
* scanline (scanline) float64 1.0 2.0 3.0 4.0 ... 354.0 355.0 356.0 357.0
* ground_pixel (ground_pixel) float64 1.0 2.0 3.0 4.0 ... 448.0 449.0 450.0
* time (time) datetime64[ns] 2019-08-25
Attributes:
long_name: Time of observation as ISO 8601 date-time string
If I want to get the minimum value by t.min(skipna=True)
, I get the strange type:
<xarray.DataArray 'time_utc' ()>
array(<xarray.core.dtypes.AlwaysGreaterThan object at 0x7f96ac188550>,
dtype=object)
Can't convert it to string by str(t.min(skipna=True))
.
do you actually have any non-nan values in your array? From what I understand of how nanops work is that AlwaysGreaterThan
should only be returned by min()
if there are no non-nan values.
@keewis I tried to using np.isnan(t.values).all()
to check whether it's all nan. But, I got this error:
print (np.isnan(t.values).all())
TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
This is the type of t.values
: <class 'numpy.ndarray'>
For datetime64 arrays, use np.isnat() instead of isnan.
On Sat, Sep 7, 2019 at 7:39 PM Xin Zhang notifications@github.com wrote:
@keewis https://github.com/keewis I tried to using np.isnan(t.values).all() to check whether it's all nan. But, I got this error:
print (np.isnan(t.values).all())
TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
This is the type of t.values: <class 'numpy.ndarray'>
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/pydata/xarray/issues/3290?email_source=notifications&email_token=AAJJFVWLAIBI55TBPAXWLDLQIRQWHA5CNFSM4IUO4E7KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6FGMMY#issuecomment-529163827, or mute the thread https://github.com/notifications/unsubscribe-auth/AAJJFVWBG7JHMQIYCYB3IJ3QIRQWHANCNFSM4IUO4E7A .
@shoyer Thanks. It's not datetime64 arrays, this is the result of np.isnat(t)
:
File "/public/software/anaconda/anaconda3/envs/python36/lib/python3.6/site-packages/xarray-0.12.3-py3.6.egg/xarray/core/arithmetic.py", line 69, in __array_ufunc__
dask='allowed')
File "/public/software/anaconda/anaconda3/envs/python36/lib/python3.6/site-packages/xarray-0.12.3-py3.6.egg/xarray/core/computation.py", line 969, in apply_ufunc
keep_attrs=keep_attrs)
File "/public/software/anaconda/anaconda3/envs/python36/lib/python3.6/site-packages/xarray-0.12.3-py3.6.egg/xarray/core/computation.py", line 217, in apply_dataarray_vfunc
result_var = func(*data_vars)
File "/public/software/anaconda/anaconda3/envs/python36/lib/python3.6/site-packages/xarray-0.12.3-py3.6.egg/xarray/core/computation.py", line 564, in apply_variable_ufunc
result_data = func(*input_data)
TypeError: ufunc 'isnat' is only defined for datetime and timedelta.
I use pd.isnull(t).all()
to check it, it works. Actually it's all nan.
There's something wrong with the nc file, I will contact the data center.
Thank you for all your help :)
MCVE Code Sample
Problem Description
You can download the data from google drive. I get errors shown in details, even using
skipna=True
.Output of
xr.show_versions()