使用ctypes

时间:2016-08-25 18:30:20

标签: python arrays numpy fortran ctypes

我应该如何将ctypes指针转换回numpy数组?我是python和fortran的初学者 - 如果这是微不足道的话,请提前道歉。

考虑代码:

import numpy as np
x = np.array(np.arange(6)) + 0.5
y = x.ctypes.data_as(ctypes.POINTER(ctypes.c_double))

我采用了一个numpy数组'x'并将其转换为适合作为数组'y'传入fortran子程序的形式。但是,我该如何进行反向操作?

[Q1] y是一个ctypes指针吗? Python称它在0x7ff7186178c8>处是< main .LP_c_double。这是什么意思?

[Q2]从y开始,我怎样才能获得x,因为我知道数组x有多长?我试过了:

ctypes.cast(y, ctypes.POINTER(ctypes.c_double)).contents.value

这将返回数组的第一个元素。但是,尝试使用以下命令访问下一个元素失败:

ctypes.cast(y, ctypes.POINTER(ctypes.c_double)).contents.value

感谢您的帮助。

0 个答案:

没有答案