我已经完成了这个函数,它使用ctypes创建一个带有指向指定地址的缓冲区协议的对象:
import numpy as np
def np_buffer_from_address(shape, dtype, address):
import ctypes
return np.ndarray(shape, dtype = dtype, buffer = ctypes.c_void_p.from_address(address))
但我想知道我是否可以在不使用ctypes的情况下完成此操作。如果你可以直接使用numpy
答案 0 :(得分:2)
您可以仅使用标准化的__array_interface__来避免使用ctypes,以下是一个示例:Creating a NumPy array directly from __array_interface__ (事实上,numpy.ctypeslib.as_array在幕后做同样的事情,适当地设置typestr和数据)