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])
我有一个大小为 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])