在numpy结构化数组列上执行math.sqrt

Car*_*arl 3 python arrays numpy math.sqrt

我有一个numpy结构化数组.最后一列需要根据行中的其他值包含简单数学方程的结果.问题是我在尝试计算等式的平方根部分时出现以下错误:

TypeError: only length-1 arrays can be converted to Python scalars

限制是我无法迭代数组以一次添加一个值.

这是一个显示错误的示例:

import numpy as np
import math

data = np.random.randint(-100, 100, (1, 6, 4))

data[:,3] = math.sqrt((0-data[:,0])**2 + (0-data[:,1])**2 + (0-data[:,2])**2)
Run Code Online (Sandbox Code Playgroud)

Joh*_*nck 5

您只需要使用np.sqrt而不是math.sqrt(后者仅适用于单个值).