我很难将numpy数据类型timedelta64与浮点数相乘。
对于任务,我需要使用开普勒第二定律计算恒星的周期。有很多数据点,所以我希望python计算2个位置之间的区域,然后除以句点,使用以下代码:
D = data['data']
vect = D-c #Data point minus center of ellipse
date = data['time'] #time for data point in np.timedelta64
Area_tot = np.pi*np.sqrt(chi[0])*np.sqrt(chi[1]) #total area of ellipse
P = np.array([])
for i in range(1,len(D[0])):
Area = LA.norm(np.cross(vect[i],vect[i-1]))/2 #usie cross product to calculate area
Time = date[i]-date[i-1]
P = np.append(P,(Area_tot/Area)*Time)
但是,在执行此操作时,我收到以下错误:
TypeError: ufunc 'multiply' not supported for the input types, and the inputs could
not be safely coerced to any supported types according to the casting rule 'safe'
所以,我想知道如何将timedelta64数据类型与float相乘......
在此先感谢并保持温和,我对stackoverflow和编程都很陌生:)
答案 0 :(得分:1)
Time.tolist().total_seconds()
以浮动方式获得差异。