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

时间:2014-09-25 05:08:15

标签: 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)

1 个答案:

答案 0 :(得分:5)

您只需使用np.sqrt代替math.sqrt(后者仅适用于单个值)。