小编Nik*_*y D的帖子

在Python 3.6中,为什么在一个numpy数组中,一个分数的幂的负数会返回nan?

我最近开始学习Python,并且我一直在阅读NumPy官方快速入门指南,其中包含用于迭代的这个示例.

>>> a
array([-1000,     1, -1000,    27, -1000,   125,   216,   343,   512,   
729])
>>> for i in a:
...     print(i**(1/3.))
...
nan
1.0
nan
3.0
nan
5.0
6.0
7.0
8.0
9.0
Run Code Online (Sandbox Code Playgroud)

但是,如果我只是尝试将-1000提高到循环外的(1/3.)的幂,则返回一个值.

>>> -1000**(1/3.)
-9.999999999999998
Run Code Online (Sandbox Code Playgroud)

括号大约-1000,它也返回一个值.

>>> (-1000)**(1/3.)
(5+8.660254037844384j)
Run Code Online (Sandbox Code Playgroud)

为什么nan在for循环中返回相同的操作?我正在使用Python 3.6.3 :: Anaconda自定义(64位).我也尝试了不会向上舍入的不同分数,它也是一样的.使用一个向上舍入到.0的分数它可以工作.

我找不到类似的问题.如果我错过了一些非常明显的东西,请原谅.

编辑: 一些评论提到问题重复NumPy,RuntimeWarning:在电源中遇到无效值 ,这是真的,问题是我没有看到这样的错误.然而,那里的讨论似乎包括一些可能的解决方法.

python numpy

7
推荐指数
1
解决办法
686
查看次数

Ruby方法可以接受块或参数吗?

我正在做Odin项目的课程,现在我必须自己编写一个新#count方法(使用其他名称),其行为类似于Enumerable模块中的常规方法.

有关计数的文档说明如下(http://ruby-doc.org/core-2.4.0/Enumerable.html#method-i-count):

count→int
count(item)→int
count {| obj | block}→int

返回enum通过枚举的项数.如果给出参数,则计算其中的项数enum等于item .如果给出了一个块,它会计算产生真值的元素数量.

我想我可以将所有这些作为单独的方法编写,但我主要想知道一个方法定义是否可以结合count- 使用item和使用块的最后两个用法.当然,我想知道这三个是否可以合并在一个定义中,但我最感兴趣的是最后两个.到目前为止,我似乎找不到可能的答案.

文档页面包含以下示例:

ary = [1, 2, 4, 2]
ary.count               #=> 4
ary.count(2)            #=> 2
ary.count{ |x| x%2==0 } #=> 3
Run Code Online (Sandbox Code Playgroud)

ruby count enumerable method-declaration

6
推荐指数
1
解决办法
939
查看次数

标签 统计

count ×1

enumerable ×1

method-declaration ×1

numpy ×1

python ×1

ruby ×1