【问题标题】:How to create a Numpy ufunc over user-defined data types?如何在用户定义的数据类型上创建 Numpy ufunc?
【发布时间】:2016-03-29 07:35:04
【问题描述】:

Numpy C API 包含一个函数PyUFunc_FromFuncAndData,用于创建PyUFuncObject 数据结构。此函数接受一个 char[] types 参数,该参数指定函数的内置参数类型(int、float 等)。但是,用户定义数据类型的类型号是 int,而不是 char。如果我使用 C-API 创建自定义(用户定义的)数据类型,如何创建一个对该数据类型进行操作的 ufunc?

【问题讨论】:

    标签: numpy


    【解决方案1】:

    我没有在 Numpy 文档中看到这一点,但 there are examples around

    int my_type_num = PyArray_RegisterDataType(&my_custom_type_descr);
    
    PyUFuncObject* ufunc = (PyUFuncObject*)PyUFunc_FromFuncAndData(
        NULL, NULL, NULL, 0, nin, nout, identity, name, doc, 0);
    PyUFunc_RegisterLoopForType(ufunc, my_type_num, my_loop_func, NULL, NULL);
    

    这是相对于旧版本的 Numpy on the Numpy mailing list 进行讨论的。这些API函数的源代码是here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-26
      • 1970-01-01
      • 2011-06-23
      • 2015-09-24
      • 2022-08-16
      相关资源
      最近更新 更多