小编Ste*_*yer的帖子

如何访问作为numpy数组传递给ctypes回调的数组?

我正在尝试使用 numpy 和 ctypes 将一些用 C 编写的数字代码集成到 Python 库中。我已经进行了实际计算,但现在想将我算法的中间步骤的进度报告给我的 Python 代码中的回调函数。虽然我可以成功调用回调函数,但我无法检索x传递给回调的数组中的数据。在回调中,x是一个ndpointer我似乎无法取消引用的对象。

当前代码

考虑这个最小的例子:

测试.h:

typedef void (*callback_t)(
    double *x,
    int n
);

void callback_test(double* x, int n, callback_t callback);
Run Code Online (Sandbox Code Playgroud)

测试.c:

#include "test.h"

void callback_test(double* x, int n, callback_t callback) {
    for(int i = 1; i <= 5; i++) {

        for(int j = 0; j < n; j++) {
            x[j] = x[j] / i;
        }

        callback(x, n);
    }
}
Run Code Online (Sandbox Code Playgroud)

测试.py:

#!/usr/bin/env python

import numpy as …
Run Code Online (Sandbox Code Playgroud)

python ctypes numpy

5
推荐指数
1
解决办法
1298
查看次数

标签 统计

ctypes ×1

numpy ×1

python ×1