Tag: nan

在Python中计算numpy ndarraymatrix中的非NaN元素的数量

我需要计算numpy ndarraymatrix中的非NaN元素的数量。 如何有效地在Python中做到这一点? 这是我实现这个简单的代码: import numpy as np def numberOfNonNans(data): count = 0 for i in data: if not np.isnan(i): count += 1 return count 在numpy中是否有内置函数? 效率很重要,因为我在做大数据分析。 thnx任何帮助!

numpy中的“isnotnan”function,这可以更pythonic?

我需要一个从数组中返回非NaN值的函数。 目前我正在这样做: >>> a = np.array([np.nan, 1, 2]) >>> a array([ NaN, 1., 2.]) >>> np.invert(np.isnan(a)) array([False, True, True], dtype=bool) >>> a[np.invert(np.isnan(a))] array([ 1., 2.]) Python:2.6.4 numpy:1.3.0 请分享,如果你知道更好的方法,谢谢

NaN和Infinity如何在内存中存储一​​个float或double?

据我所知,Java将存储在内存中的一个浮点数为32位整数具有以下属性: 第一位用于确定符号 接下来的8位代表指数 最后的23位用来存储分数 这为三种特殊情况留下了不必要的空位: 为NaN 正无限 负无穷 我可以猜测,负0可以用来存储其中之一。 这些在内存中是如何performance的?

将nan值转换为零

我有一个2D numpy数组。 这个数组中的一些值是NaN 。 我想要使​​用这个数组来执行某些操作。 例如考虑数组: [[ 0. 43. 67. 0. 38.] [ 100. 86. 96. 100. 94.] [ 76. 79. 83. 89. 56.] [ 88. NaN 67. 89. 81.] [ 94. 79. 67. 89. 69.] [ 88. 79. 58. 72. 63.] [ 76. 79. 71. 67. 56.] [ 71. 71. NaN 56. 100.]] 我试图每次取一行,按照相反的顺序sorting,从行中获取最大值3并取其平均值。 […]

为什么释放/debugging对std :: min有不同的结果?

这里是testing程序: void testFunc() { double maxValue = DBL_MAX; double slope = std::numeric_limits<double>::quiet_NaN(); std::cout << "slope is " << slope << std::endl; std::cout << "maxThreshold is " << maxValue << std::endl; std::cout << "the_min is " << std::min( slope, maxValue) << std::endl; std::cout << "the_min is " << std::min( DBL_MAX, std::numeric_limits<double>::quiet_NaN()) << std::endl; } int main( […]

一个函数来检测NaN,NA,Inf,-Inf等?

R中是否有一个函数确定一个值是NA , NaN , Inf , -Inf还是不是一个-Inf数字?

为什么GCC对C ++ <cmath>比C <math.h>更有效地实现isnan()?

这是我的代码: int f(double x) { return isnan(x); } 如果我#include <cmath>我得到这个程序集: xorl %eax, %eax ucomisd %xmm0, %xmm0 setp %al 这是相当聪明的: ucomisd设置奇偶标志,如果x与自己的比较是无序的,这意味着x是NAN。 然后, setp将奇偶校验标志复制到结果中(只有一个字节,因此最初清除%eax )。 但是,如果我#include <math.h>我得到这个程序集: jmp __isnan 现在代码不是内联的, __isnan函数当然不会快于ucomisd指令,所以我们已经发生了跳跃,没有任何好处。 如果我将代码编译为C,我会得到同样的结果 现在,如果将isnan()调用更改为__builtin_isnan() ,则无论我包含哪个头,都可以得到简单的ucomisd指令指令,而且它也可以在C中工作。 同样,如果我只是return x != x 。 所以我的问题是,为什么C <math.h>头提供了比C ++ <cmath>头更低效率的isnan()实现? 人们是否真的希望使用__builtin_isnan() ,如果是这样,为什么? 我在x86-64上使用-O2和-O3优化testing了GCC 4.7.2和4.9.0。

如果任一参数是NaN,会导致C / C ++ <,<=和==运算符返回true?

我对IEEE-754浮点比较规则的理解是,除了!=之外的所有比较运算符将返回false,如果其中一个或两个参数都是NaN,而!=运算符将返回true。 我可以通过一个简单的独立testing轻松地重现此行为: for (int ii = 0; ii < 4; ++ii) { float a = (ii & 1) != 0 ? NAN : 1.0f; float b = (ii & 2) != 0 ? NAN : 2.0f; #define TEST(OP) printf("%4.1f %2s %4.1f => %s\n", a, #OP, b, a OP b ? "true" : "false"); TEST(<) TEST(>) […]

在JavaScript中打破NaN

是否有任何现代浏览器引发NaN传播的exception(即将数字乘以或添加到NaN),还是可以configuration为这样做呢? 沉默的NaN传播是一个可怕的阴险的错误来源,我希望能够尽早发现它们,即使在性能上也是如此。 这里有一个use strict的例子, jshint等。 不会拿起: object = new MyObject(); object.position.x = 0; object.position.y = 10; // … lots of code var newPosition = object.position + 1; // <- this is an error, and should // have been object.position.x // however it fails *silently*, // rather than loudly newPosition *= 2; // <- this doesn't […]

我如何testingNaN?

可能重复: 在Javascript中比较NaN值是否相等 谁能告诉我为什么这不起作用? if(inbperr == NaN){ document.getElementById('inbclo').value = "N/A"; } else{ document.getElementById('inbclo').value = "%" + inbperr; } 而不是像我想要它返回一个百分比值或“N / A”它返回“%NaN”。