小编bra*_*711的帖子

Cython - 动态 2D C++ 数组的 Memoryview

目标:使用 Cython 从 2D C++ 字符数组获取 Memoryview。

一点背景:

我有一个本机 C++ 库,它生成一些数据并通过 a 返回char**到 Cython 世界。数组在库中的初始化和操作大约是这样的:

struct Result_buffer{
    char** data_pointer;
    int length = 0;

    Result_buffer( int row_capacity) {
        data_pointer; = new char*[row_capacity];
        return arr;
    }

    // the actual data is appended row by row
    void append_row(char* row_data) {
         data_pointer[length] = row_data;
         length++;
    }     
}
Run Code Online (Sandbox Code Playgroud)

所以我们基本上得到了一个嵌套子数组的数组。

旁注:
- 每行具有相同的列数
- 行可以共享内存,即指向相同的 row_data

目标是最好将此数组与内存视图一起使用,而无需昂贵的内存复制。


第一种方法(不起作用)

使用 Cython 数组和内存视图:

这是应该使用生成的数据的 .pyx 文件

from cython cimport view
cimport numpy as np …
Run Code Online (Sandbox Code Playgroud)

python cython pep3118 typed-memory-views

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

标签 统计

cython ×1

pep3118 ×1

python ×1

typed-memory-views ×1