我下面的代码执行了很长时间。有更好的方法吗?
函数“ angles”计算两个向量之间的角度。
df = (4658147, 14) # pandas dataframe with columns [x0,y0,z0, x1,y1,z1] and others.
def angles(v1, v2):
return(math.acos(np.dot(v1,v2)/np.sqrt(v1.dot(v1))*np.sqrt(v2.dot(v2)))))
df['angle'] = df.apply(lambda x: angles(x[['x_0','y_0', 'z_0']], x[['x_1','y_1', 'z_1']]), axis=1)
预期结果将在df
中创建一个新列,并以角度作为标签,并在每行中添加角度值。