Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 缺失值屏蔽数组相关性(numpy.ma)_Python_Arrays_Numpy_Missing Data - Fatal编程技术网

Python 缺失值屏蔽数组相关性(numpy.ma)

Python 缺失值屏蔽数组相关性(numpy.ma),python,arrays,numpy,missing-data,Python,Arrays,Numpy,Missing Data,我试图使用numpy.ma.corrcoef来计算缺失数据情况下的相关性 根据文件: 除了处理丢失的数据外,此函数的作用与numpy.corrcoef相同。有关更多详细信息和示例,请参见numpy.corrcoef 这是一个双变量数据集,其中只有第一个点和第二个点具有两个变量的数据 array([[ 0.00494576, -0.01331578], [-0.00146498, -0.01349548], [ 0.00430321, nan], [-0.0093

我试图使用numpy.ma.corrcoef来计算缺失数据情况下的相关性

根据文件: 除了处理丢失的数据外,此函数的作用与
numpy.corrcoef
相同。有关更多详细信息和示例,请参见
numpy.corrcoef

这是一个双变量数据集,其中只有第一个点和第二个点具有两个变量的数据

array([[ 0.00494576, -0.01331578],
   [-0.00146498, -0.01349548],
   [ 0.00430321,         nan],
   [-0.00937105,         nan],
   [        nan, -0.01356873],
   [        nan, -0.01375538],
   [        nan, -0.00277393],
   [        nan,  0.0082988 ],
   [        nan,  0.        ],
   [        nan,  0.00275103],
   [        nan,  0.00547947],
   [        nan, -0.01375538],
   [        nan,  0.0110194 ],
   [        nan, -0.00549452],
   [        nan,  0.01910017],
   [        nan, -0.02462505],
   [        nan, -0.01676017],
   [        nan,  0.0112046 ],
   [        nan,  0.01108045],
   [        nan,  0.01639381],
   [        nan,  0.01078178],
   [        nan, -0.01078178]])
当我将其转换为屏蔽数组(np.ma.masked_数组(t,np.isnan(t)),其中t是上面的数组)并在其上运行np.ma.corrcoef(rowvar=False),变量之间的相关性为-86.52(绝对值,而不是百分比!)。而仅在前两个点上运行np.corrcoef会产生1的相关性(同样是绝对值)。根据文档,后一个值是我认为应该从第一个操作中得到的

我的Python版本(MacOSX.6.8上的64位PyLab)信息如下,我使用的是Numpy版本1.6.1

Python 2.7.3 | EPD 7.3-1(64位)|(默认值,2012年4月12日,11:14:05) 有关详细信息,请键入“版权”、“信用”或“许可证”


请告诉我这里缺少什么!提前感谢。

a
为例,我有:

In [1]: np.ma.corrcoef(a[:2])
Out[1]: 
masked_array(data =
 [[1.0 1.0]
 [1.0 1.0]],
             mask =
 [[False False]
 [False False]],
       fill_value = 1e+20)

我使用的是numpy版本1.6.2

我认为这可能是numpy.ma.corrcoef中的一个bug(或者更准确地说,可能是在np.ma.extras.\u covhelper中,我认为对于单个数组输入,它不能正确地将掩码从一列传播到另一列,但可能我看错了位置)


使用
np.ma.corrcoef(b[:,0],b[:,1])
并创建错误报告
np.ma.corrcoef(b[:,0],b[:,1])
给出了预期的结果,因此在修复之前这是一个简单的解决方法。

谢谢你,我认为你当时能够重现这一点;感谢您的解决方案,但我认为它对我的帮助不如升级numpy(见下文)那么大,因为我需要一组七个变量的相关矩阵,上面的示例中只显示了其中的两个变量,我得到了相同的答案是的,所以假设它是错误的,这是numpy中的一个错误,在新版本中似乎尚未修复。这个问题可能归结为所有数字都被减法,但在下一步中,它们不再被使用。。。(不管怎样,如果你能写一篇错误报告就好了)谢谢你;我使用的numpy版本是1.6.1,我想知道您是否对我使用的Enthound PyLab的升级有任何建议。我已经下载了1.6.2版,但是当我尝试安装它时,我收到一条消息说Python 2.7是必需的。我的最新版本是2.7.3版,但我的默认版本是2.6版,而numpy的安装似乎正是基于这一版本。请问如何升级Enthow安装?