gpt4 book ai didi

python - numpy 数组中所有值的平方根,保留符号

转载 作者:太空狗 更新时间:2023-10-29 22:09:11 24 4
gpt4 key购买 nike

我想对 numpy 数组中的每个值求平方根,同时保留值的符号(负数时不返回复数)- 带符号的平方根。

下面的代码演示了带有列表的所需功能,但没有利用 numpy 的优化数组操作 super 能力。

def signed_sqrt(list):
new_list = []
for v in arr:
sign = 1
if v < 0:
sign = -1
sqrt = cmath.sqrt(abs(v))
new_v = sqrt * sign
new_list.append(new_v)


list = [1., 81., -7., 4., -16.]
list = signed_sqrt(list)
# [1., 9., -2.6457, 2. -4.]

在某些情况下,我正在计算 Hellinger 内核以进行 [数千] 图像比较。

用 numpy 有什么流畅的方法吗?谢谢。

最佳答案

您可以尝试使用numpy.sign 函数来捕获符号,并且只取绝对值的平方根。

import numpy as np
x = np.array([-1, 1, 100, 16, -100, -16])
y = np.sqrt(np.abs(x)) * np.sign(x)
# [-1, 1, 10, 4, -10, -4]

关于python - numpy 数组中所有值的平方根,保留符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31281059/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com