将 numpy 数组转换为 MemoryView 对象

Convert numpy array to MemoryView object

我正在尝试将 numpy 数组转换为 MemoryView 对象,因为我必须在两个程序之间进行通信。一个只能处理 NumPy 数组,另一个只能处理 MemoryView 对象。

从 MemoryView 到 numpy 数组的转换很容易完成:

import numpy as np
MyNumpyArray=np.array(MyMemoryView)

但是如何从 numpy 数组转换为 MemoryView?

我在这里找到:https://docs.python.org/3/c-api/memoryview.html 有一个 PyMemoryView_FromObject(PyObject *obj) 函数,但没有例子我不知道如何调用它。

谢谢!

memoryview 是内置类型之一,可以简单地称为:

arr = np.random.rand(5,4)
view = memoryview(arr)
view
<memory at 0x12699c318>

除了接受 之外,还提供了另一种从 Numpy 数组中获取内存视图的简单方法:

Try it online!

a = np.arange(1, 9)
view = a.data
print(type(view)) # <class 'memoryview'>

换句话说,数组变量的 .data 属性正好给出 memoryview.