小编use*_*326的帖子

C 中的 Numpy 数组

我刚刚开始使用 C,正在尝试为我的 python 制作一个后端。目前,我有一个繁琐的系统,从 python 编写巨大的输入文件(至少 10^6 个浮点数),然后初始化 C(它还必须加载大量其他数据),运行 C 直到终止,接收其输出只需使用新的输入数组再次重新初始化它。

我不确定环顾四周在概念上是否可行,但我希望能够将 C 定向到 numpy 数组的内存地址,并像使用 C 生成的数组一样使用它。目的是让 python 初始化 C,构建其第一个数组,运行 C 代码,直到准备好下一个数组,然后由 python 生成该数组。

这是我编写的一些虚拟代码,用于尝试让 C 读取 numpy 数组。目前 C 只是有一个分段错误,我不确定是否是因为我不擅长 C,它不喜欢读取 numpy 数组或两者兼而有之。

前端.py

array_interface 来自这里

#! /usr/bin/python

import numpy as np
import subprocess as sp

ray = np.array([x*3.14 for x in range(10)])
addr = ray.__array_interface__['data'][0]

pro = sp.Popen(['./back', hex(addr)])
print pro.communicate()[0]
print ray[:5]
quit()
Run Code Online (Sandbox Code Playgroud)

后退c

#include <stdio.h>
#include <stdlib.h>

int main(char *argv[])
{
  float *addr; …
Run Code Online (Sandbox Code Playgroud)

c python ctypes numpy backend

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

标签 统计

backend ×1

c ×1

ctypes ×1

numpy ×1

python ×1