2024-05-20 00:55:24 发布
网友
我想为数据帧的每一行计算范数(即以欧几里德距离表示的向量长度)。我知道像mean()和sum()这样的函数存在,但没有norm()。所以我试着自己去实现它
mean()
sum()
norm()
df.apply(lambda values: math.sqrt(sum([v**2 for v in values])), axis=1)
但与求和函数相比,这是非常缓慢的。是否有一个简单(快速)的实现
当然,在这里使用numpy:
numpy
In [1]: import pandas as pd, numpy as np In [2]: df = pd.DataFrame(data=[[1,2,3],[4,5,6]], columns=['a','b','c']) In [3]: np.linalg.norm(df, axis=1) Out[3]: array([3.74165739, 8.77496439])
当然,在这里使用
numpy
:相关问题 更多 >
编程相关推荐