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

如何对向量所有元素计算2次幂后保留其原有正负符号

向量元素二次幂运算保留原正负号实现方法

核心实现逻辑:普通二次幂运算会消去元素的负号,要保留原符号只需要在计算出幂值后,乘上对应元素的原始符号即可,等价于直接计算元素值 * 元素的绝对值——正数场景下该式等于x²,负数场景下该式等于 -x²,刚好符合带符号二次幂的要求。

给定向量手动计算结果

原始向量:v = [4,7,-2,9,3,-6,-4,1]
逐元素计算后得到的结果向量为:[16, 49, -4, 81, 9, -36, -16, 1]
逐元素计算过程:

  • 4:4*abs(4)=16,符号为正,结果16
  • 7:7*abs(7)=49,符号为正,结果49
  • -2:-2*abs(-2)=-4,符号为负,结果-4
  • 9:9*abs(9)=81,符号为正,结果81
  • 3:3*abs(3)=9,符号为正,结果9
  • -6:-6*abs(-6)=-36,符号为负,结果-36
  • -4:-4*abs(-4)=-16,符号为负,结果-16
  • 1:1*abs(1)=1,符号为正,结果1

常用代码实现

原生Python列表实现

v = [4,7,-2,9,3,-6,-4,1]
# 简洁写法:利用x*abs(x)直接得到带符号二次幂结果
result = [x * abs(x) for x in v]
print(result)
# 输出: [16, 49, -4, 81, 9, -36, -16, 1]

NumPy向量化实现(适合大尺寸向量运算场景)

import numpy as np
v = np.array([4,7,-2,9,3,-6,-4,1])
result = v * np.abs(v)
print(result)
# 输出: [ 16  49  -4  81   9 -36 -16   1]

注意:如果向量中存在0元素,上述写法依然成立,0*abs(0)=0,符合计算预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 11:51:12