是否有一个库对妈妈?

2024-04-25 05:55:38 发布

您现在位置:Python中文网/ 问答频道 /正文

有一个numpy.测试用于比较numpy数组的包,但似乎没有用于屏蔽数组的等效程序。有没有一个图书馆已经在做这个了?你知道吗

我注意到文学硕士它本身有一些比较函数,比如阿莱奎尔女士,但此函数似乎无法检查两个数组掩码是否相同。E、 g.-

In [151]: a = ma.masked_array([0,1,2,3],[True,False,False,False])

In [152]: b = ma.masked_array([0,1,2,3],[True,True,False,False])

In [153]: ma.allequal(a,b)
Out[153]: True

Tags: 函数in程序numpyfalsetrue图书馆数组
1条回答
网友
1楼 · 发布于 2024-04-25 05:55:38

ma.masked_array.__eq__实际上是在numpy中实现的,但是它可能没有您想要的语义?您可以使用help(ma.masked_array.__eq__)和python解释器访问文档,它说明:

Check whether other equals self elementwise

这就是我在你的例子中看到的:它在数据被标记为有效的地方进行比较,并在屏蔽数组的数据字段中返回结果。如果数据无效(对于a或b),则生成的屏蔽数组字段将被屏蔽。你知道吗

>>> import numpy as np
>>> import numpy.ma as ma
>>> a = ma.masked_array([0,1,2,3],[True,False,False,False])
>>> b = ma.masked_array([0,1,2,3],[True,True,False,False])
>>> a==b
masked_array(data = [    True True],
             mask = [ True  True False False],
       fill_value = True)
>>> b = ma.masked_array([0,1,2,4],[True,True,False,False])
>>> a==b
masked_array(data = [    True False],
             mask = [ True  True False False],
       fill_value = True)

如果要检查所有字段是否有效且相等,可以使用:

<罢工> np.全部错误((a==b).数据)

编辑:实际上,我想你需要:

not np.any((a==b).mask) and np.alltrue((a==b).compressed())

如果要检查所有有效字段是否相等,可以使用:

np.alltrue((a==b).compressed())

正如user2357112在注释中解释的那样,numpy.testing为numpy数组的单元测试提供了函数,这可能不是您想要的。{cd4}这个函数仍然可以用。你知道吗

相关问题 更多 >