Python数据帧向量范数效率

2024-05-20 00:55:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我想为数据帧的每一行计算范数(即以欧几里德距离表示的向量长度)。我知道像mean()sum()这样的函数存在,但没有norm()。所以我试着自己去实现它

df.apply(lambda values: math.sqrt(sum([v**2 for v in values])), axis=1)

但与求和函数相比,这是非常缓慢的。是否有一个简单(快速)的实现


Tags: 数据lambda函数距离范数normdffor
1条回答
网友
1楼 · 发布于 2024-05-20 00:55:24

当然,在这里使用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])

相关问题 更多 >