Tôi có một mảng float (một số số bình thường, một số số nans) sắp ra khỏi ứng dụng trên khung dữ liệu gấu trúc.
Vì một lý do nào đó mà numpy.isnan bị lỗi trên mảng này, tuy nhiên như hình dưới đây, mỗi phần tử là một float, numpy.isnan chạy đúng trên từng phần tử, kiểu của biến chắc chắn là một mảng numpy.
Chuyện gì vậy ?!
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