当前位置: 首页 > 知识库问答 >
问题:

python中向量的值显示为nan值[duplicate]

涂飞航
2023-03-14

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

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

我得到向量vec的输出值都是nan或者其中大多数是nan

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

请问我怎样才能解决这个问题?

共有2个答案

单于高逸
2023-03-14

您需要如下所示的复杂类:

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])
赫连方伟
2023-03-14

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

一个有效的例子:

vec=2*np。π*np。sqrt(1)*0.5*范围(长度(y))

如果你想使用虚数单位,你需要将这个数表示为复数,使用表达式i jk

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

vec=np。π*np。sqrt(-1 0j)*np。阵列(范围(长度(y)))

 类似资料:
  • 我的数据帧中有一个值列表,我想用空字符串替换NaN值。 到目前为止,我所尝试的都不起作用:

  • 我得到了这段代码,我必须选择正确的答案。 现在: a)y值升为幂 b)x所在单元的地址 c)可变单元地址y d)值5 当我在程序中输入它时,我只是弹出,但我不知道那是不是正确的答案。

  • 问题内容: float(‘nan’)结果为Nan(不是数字)。但是,如何检查呢?应该很容易,但是我找不到。 问题答案: 返回如果为(非数字),以及其他。

  • 问题内容: 我有一个二维的numpy数组。此数组中的一些值为。我想使用此数组执行某些操作。例如考虑数组: 我试图每次取一行,以相反的顺序对其进行排序,以从行中获取最多3个值并取其平均值。我试过的代码是: 这不适用于包含的行。我的问题是,是否有一种快速的方法可以将2D numpy数组中的所有值都转换为零,以便我在排序和其他尝试做的事情上没有问题。 问题答案: 这应该工作: 在上述情况下,where_

  • 请为Pandas提供pyspark dataframe替代方案。 另外,我不需要,而是希望检查该列中的distinct值。

  • 我有一个应用程序,它有一个列表,当它为空时,它显示“空”,但我想显示任何东西,而不是它,但我不能。我试着做了一个验证,但由于某种原因它仍然显示为null。 代码如下: 但以下是它的表现: 我做错了什么?