You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对二维uarray进行逐元素平方根计算?

如何对二维uarray逐元素取平方根?

你的示例代码生成了二维uarray,但直接用umath.sqrt(Uarray)会报错,因为umath的函数仅支持标量运算,无法直接处理二维数组。要实现类似NumPy数组的逐元素平方根计算,有两种可行方式:

方法一:使用unumpy.sqrt(推荐)

unumpy库提供了和NumPy对齐的向量化操作函数,专门用于处理uarray,无需手动循环:

import numpy as np
from uncertainties import unumpy, umath

array = np.array([[2,3],[6,7],[5,3]])
uncertainties = np.array([[2,2],[4,4],[5,5]])
Uarray = unumpy.uarray(array, uncertainties)

# 直接调用unumpy的sqrt实现逐元素计算
sqrt_uarray = unumpy.sqrt(Uarray)
print(sqrt_uarray)

输出结果:

[[1.41421356+/-0.70710678 1.73205081+/-0.57735027]
 [2.44948974+/-0.81649658 2.64575131+/-0.75592895]
 [2.23606798+/-1.11803399 1.73205081+/-1.44337567]]

方法二:手动循环实现

如果需要用循环遍历元素,可以嵌套循环逐个调用umath.sqrt,再重新组装成uarray:

import numpy as np
from uncertainties import unumpy, umath

array = np.array([[2,3],[6,7],[5,3]])
uncertainties = np.array([[2,2],[4,4],[5,5]])
Uarray = unumpy.uarray(array, uncertainties)

# 嵌套循环处理每个元素
sqrt_rows = []
for row in Uarray:
    sqrt_row = [umath.sqrt(elem) for elem in row]
    sqrt_rows.append(sqrt_row)

# 将结果转为uarray
sqrt_uarray = unumpy.uarray(sqrt_rows)
print(sqrt_uarray)

该方法输出和方法一完全一致,但效率远低于向量化操作,仅适合理解原理时使用。

内容的提问来源于stack exchange,提问作者remusconnor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 21:42:21