Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.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 C语言中的numpy数组类型转换_Python_Numpy_Swig - Fatal编程技术网

Python C语言中的numpy数组类型转换

Python C语言中的numpy数组类型转换,python,numpy,swig,Python,Numpy,Swig,我想在C(Swig)中将numpy双数组转换为numpy浮点数组。 我正在尝试使用 PyObject *object = PyArray_FROM_OT(input,NPY_FLOAT) 或 或 或 但它们都返回空值?我遗漏了什么吗?您的方法是正确的,但您关于numpy C API的假设是错误的。NPY_FLOAT只是一个整型常量,但是您发布的函数要求type参数是指向结构的指针 为了从纯类型中获取类型描述,您可以调用PyArray_DecrFromType,因此您的调用可以如下所示: PyA

我想在C(Swig)中将numpy双数组转换为numpy浮点数组。 我正在尝试使用

PyObject *object = PyArray_FROM_OT(input,NPY_FLOAT)


但它们都返回空值?我遗漏了什么吗?

您的方法是正确的,但您关于numpy C API的假设是错误的。NPY_FLOAT只是一个整型常量,但是您发布的函数要求type参数是指向结构的指针

为了从纯类型中获取类型描述,您可以调用PyArray_DecrFromType,因此您的调用可以如下所示:

PyArrayObject* float_array = (PyArrayObject*)PyArray_FromAny(input,PyArray_DescrFromType(NPY_FLOAT64), 0,0, flags);

…标志是您在转换时认为有意义的任何标志-请查看numpy API,了解正确的API调用以及不同标志和值的含义。

还没有答案吗?有人能告诉我一般如何使用API转换类型吗?
PyObject *object = PyArray_FromObject(input,NPY_FLOAT,0,0)
PyObject *object = PyArray_ContiguousFromAny(input,NPY_FLOAT,0,0)
PyArrayObject* float_array = (PyArrayObject*)PyArray_FromAny(input,PyArray_DescrFromType(NPY_FLOAT64), 0,0, flags);