我有一个pandas Dataframe,其中N列代表矢量的坐标(例如X,Y,Z,但可能超过3D).
我想沿着行聚合数据帧,并使用组合列的任意函数,例如:norm : (X^2 + Y^2 + Y^2).
我想做类似于这里以及此处和此处所做的事情,但我想保持足够的通用,列数可以改变,它的行为就像
DataFrame.mean(axis = 1)
Run Code Online (Sandbox Code Playgroud)
要么
DataFrame.sum(axis = 1)
Run Code Online (Sandbox Code Playgroud)
Fra*_*Fra 20
我找到了比@elyase建议更快的解决方案:
np.sqrt(np.square(df).sum(axis=1))
Run Code Online (Sandbox Code Playgroud)
Numpy提供常规...使用:
np.linalg.norm(df[['X','Y','Z']].values,axis=1)
Run Code Online (Sandbox Code Playgroud)
一行,使用您想要的任何函数(包括 lambda 函数),例如
df.apply(np.linalg.norm, axis=1)
或者
df.apply(lambda x: (x**2).sum()**.5, axis=1)
| 归档时间: |
|
| 查看次数: |
11258 次 |
| 最近记录: |