首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Numpy C-Api array_equal

Numpy C-Api array_equal
EN

Stack Overflow用户
提问于 2015-12-27 23:42:27
回答 1查看 150关注 0票数 1

我试图找到比较两个PyArrayObject的函数--类似于相等,但我没有找到任何东西。你知道这样的功能吗?

如果没有-如何将这个numpy array_equal导入到我的C代码中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-28 00:59:56

这是array_equal的代码

代码语言:javascript
复制
def array_equal(a1, a2):
    try:
        a1, a2 = asarray(a1), asarray(a2)
    except:
        return False
    if a1.shape != a2.shape:
        return False
    return bool(asarray(a1 == a2).all())

如您所见,它不是c-api级函数。在确保两个输入都是数组之后,该形状匹配之后,它执行一个元素==测试,然后是all

这在浮点数上不可靠。对国家和布尔人来说没问题。

c-api中可能有某种相等的函数,但它的克隆可能不是您所需要的。

代码语言:javascript
复制
PyArray_CountNonzero(PyArrayObject* self)

可能是个很好的功能。我记得在前面深入研究代码时,PyArray_Nonzero使用它来确定要分配和返回的数组的大小。您可以为它提供一个对象,用于比较2个数组的元素(无论以何种方式给出dtype),然后测试非零计数。

或者,您可以构造自己的迭代器,只要得到一对不相等的元素,它就会退出。使用nditer获得整个阵列的广播功率。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34486065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档