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

Python中使用numpy构造向量时出现nan值该如何解决

问题根因
  • 负数开平方默认在实数域运算不合法:np.sqrt(-1)输入为整数时,numpy默认按实数域处理,直接返回nan,后续所有和它相乘的结果都会是nan。
  • 维度长度获取错误:你的向量y维度为(1,64)属于二维数组,len(y)只能获取第一个维度的长度1,无法得到你需要的64位序列长度。
  • range对象无法直接和numpy标量正确执行向量化运算,需要先转换为numpy数组。
解决方案

你要生成虚数系数的等差序列,直接用Python内置的虚数单位1j,同时改用np.arange生成对应长度的等差序列即可,两种可选写法如下:

# 写法1:通用适配任意维度的y,生成序列长度和y的总元素数一致
vec = np.pi * 1j * np.arange(y.size)
# 写法2:如果你确实需要序列长度匹配y的第二个维度(适配(1,64)这类二维结构)
vec = np.pi * 1j * np.arange(y.shape[1])

如果你一定要用np.sqrt的方式生成虚数单位,给输入值补充复数标识即可:

vec = np.pi * np.sqrt(-1 + 0j) * np.arange(y.size)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:36:01