python 中向量的值显示为 nan 值

The values of a vector in python are shown as nan value

我有一个大小为 y 的向量,例如 (1,64)。我在 python 中创建一个向量,如下所示:

vec = np.pi * np.sqrt(-1) * range(len(y))

我得到向量vec的输出值都是nan或者大部分是nan.

我试图用上面代码中的 range(len(y)) 完成的是创建一个向量,包括 0、2、3 ...,长度为 y

请问我该如何解决这个问题?

你得到 nan 是因为你使用的是 -1 的平方根,至于 range(len(y)) 它创建了一个包含从 0 到 len(y) - 1 的项目的范围对象,但是你不能按原样对其进行数学运算,您需要将其传递给 numpy.array 或在表达式中有一个 numpy 对象(这由 np.sqrt 函数满足),另一种方法是 np.array(range(len(y)))

一个工作示例:

vec = 2*np.pi*np.sqrt(1)*0.5*range(len(y))

如果您想使用虚数单位,则需要将数字表示为复数,请使用表达式 i+jk

因此您的代码将是( 2 *0.5 已删除,因为它是多余的)

vec = np.pi*np.sqrt(-1 + 0j)*np.array(range(len(y)))

您需要像下面这样的复杂 class:

import cmath

vec = 2*np.pi * cmath.sqrt(-1)*0.5* np.array(range(len(y)))
vec

输出:

array([0.+0.j        , 0.+3.14159265j, 0.+6.28318531j, 0.+9.42477796j])