gpt4 book ai didi

c - numpy/arrayobject.h 和 C 扩展

转载 作者:太空宇宙 更新时间:2023-11-03 23:49:24 25 4
gpt4 key购买 nike

我打算用 C 代码对 numpy 数组进行一些计算。有人可以指出一些关于如何从 numpy.matrix 对象中提取 double* C 数组的文档吗?所以我可以有一些像这样的 C 代码:

#include <Python.h>
#include <numpy_arrayobject.h>
static PyObject* foo(PyObject* self, PyObject *args)
{
some_numpy_array_t *x;
if (!PyArg_ParseTuple(args, "O", &x)
return NULL;
double* data = x->some_function_to_get_the_raw_data();
...
}

我正在寻找 some_numpy_array_t 的类型和 some_function_to_get_the_raw_data() 在实际代码中的功能。谢谢!

最佳答案

基于:

http://stuff.mit.edu/afs/sipb/project/python/src/python-numeric-22.0/doc/www.pfdubois.com/numpy/html2/numpy-13.html

需要 PyArrayObject 和 PyArray_DATA()。后者是一个返回void*的宏,所以

double* data = (double*) PyArray_DATA(x);

是正确的行。

请注意,还需要调用 import_array()。

关于c - numpy/arrayobject.h 和 C 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24497455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com