Tôi có một mảng nổi (một số số bình thường, một số nans) sắp ra khỏi một áp dụng trên một khung dữ liệu gấu trúc. Đối với một số lý do, numpy.isnan không hoạt động trên mảng này, tuy nhiên như hình dưới đây, mỗi phần tử là một phao, numpy.isnan chạy đúng trên mỗi phần tử, kiểu biến chắc chắn là một mảng có nhiều mảng.Numpy isnan() thất bại trên một mảng float (từ khung dữ liệu gấu trúc áp dụng)
Điều gì đang xảy ra ?!
set([type(x) for x in tester])
Out[59]: {float}
tester
Out[60]:
array([-0.7000000000000001, nan, nan, nan, nan, nan, nan, nan, nan, nan,
nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
nan, nan], dtype=object)
set([type(x) for x in tester])
Out[61]: {float}
np.isnan(tester)
Traceback (most recent call last):
File "<ipython-input-62-e3638605b43c>", line 1, in <module>
np.isnan(tester)
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''
set([np.isnan(x) for x in tester])
Out[65]: {False, True}
type(tester)
Out[66]: numpy.ndarray
Cảm ơn - đã sử dụng pd.isnull(). Dường như không có bất kỳ tác động hiệu suất nào. – tim654321