Tôi nhận ngoại lệ này vì lý do tôi không hiểu. Nó là khá phức tạp, nơi tôi np.array v đến từ đâu, nhưng đây là mã khi ngoại lệ xảy ra:Ngoại lệ không mong muốn trong numpy.isfinite()
print v, type(v)
for val in v:
print val, type(val)
print "use isfinte() with astype(float64): "
np.isfinite(v.astype("float64"))
print "use isfinite() as usual: "
try:
np.isfinite(v)
except Exception,e:
print e
Điều này cho phép đầu ra sau đây:
[6.4441947744288255 7.2246449651781788 4.1028442021807656
4.8832943929301189] <type 'numpy.ndarray'>
6.44419477443 <type 'numpy.float64'>
7.22464496518 <type 'numpy.float64'>
4.10284420218 <type 'numpy.float64'>
4.88329439293 <type 'numpy.float64'>
np.isfinte() with astype(float64):
[ True True True True]
np.isfinte() as usual:
ufunc 'isfinite' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
Tôi không hiểu được TypeError . Tất cả các phần tử là np.float64 và sẽ ổn. Có thể là một lỗi? Lỗi này đôi khi chỉ thỉnh thoảng xảy ra, nhưng tôi không thể tìm thấy sự khác biệt giữa các mảng. Luôn luôn có cùng loại.
Xin cảm ơn trước.
EDIT: Ví dụ làm việc:
Cấu trúc dữ liệu nhỏ như trình bày ở trên.
import pandas as pd
import numpy as np
def forward_estim(H,end):
old_idx = H.index
new_idx = pd.period_range(old_idx[-1],end,freq=old_idx.freq)
H_estim = pd.DataFrame(columns=["A","B","C","D"],index=new_idx)
H_chg = H.values[1:]-H.values[:-1]
mean_ = H_chg.mean()
std_ = H_chg.std()
H_estim.ix[0] = H.ix[-1]
for i in range(1,len(H_estim)):
H_estim.A[i] = H_estim.A[i-1] + mean_ + std_/2
H_estim.B[i] = H_estim.B[i-1] + mean_ + std_
H_estim.C[i] = H_estim.C[i-1] + mean_ - std_
H_estim.D[i] = H_estim.D[i-1] + mean_ - std_/2
return H_estim.ix[1:]
H_idx = pd.period_range("2010-01-01","2012-01-01",freq="A")
print H_idx
H = pd.Series(np.array([2.3,3.0,2.9]),index=H_idx)
print H
H_estim = forward_estim(H,"2014-01-01")
print H_estim
np.isfinite(H_estim.values.astype("float64"))
print "This works!"
np.isfinite(H_estim.values)
print "This does not work!"
này được điều hành ở đây sử dụng:
MacOSX Mavericks, Python 2.7.6, 1.8.1 NumPy, gấu trúc 0.13.1
Bạn chắc chắn nên nêu rõ phiên bản nào của Python và bạn đang làm việc trên hệ thống nào. Nó sẽ là lợi ích lớn nếu bạn có thể đưa ra một ví dụ tối thiểu tái tạo vấn đề. –
Đã chỉnh sửa Bài đăng gốc bằng một ví dụ. Điều này sẽ ném ngoại lệ được đề cập ở trên trên máy tính của tôi/thiết lập python. – user2532323