用 python 求 3 维向量的大小

find magnitude of 3 dimensional vectors with python

我试图通过查找其他三列的大小在 DataFrame 中创建一个新列,但出现此错误。

TypeError: cannot convert the series to <class 'float'>

有什么解决办法吗?

df = pd.read_csv('./data/all.csv')
df['f_magni'] = math.sqrt( (df['fx'])**2 + (df['fz'])**2 + (df['fy'])**2)

它适用于正常计算,但不适用于上述过程。

我的 csv 包含带浮点数和整数的正数、负数。

我可以得到一些帮助吗?

您可以在 Series 对象上使用 numpy.sqrt

import numpy as np
df['f_magni'] = np.sqrt(df['fx']**2 + df['fz']**2 + df['fy']**2)

或者只使用 pow 函数:

df['f_magni'] = (df['fx']**2 + df['fz']**2 + df['fy']**2).pow(1/2)