将 numpy 数组转换为 MemoryView 对象

Tha*_*oob 1 arrays numpy memoryview

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

从 MemoryView 转换为 numpy 数组很容易通过以下方式完成:

import numpy as np
MyNumpyArray=np.array(MyMemoryView)
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢!

Grr*_*Grr 6

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

arr = np.random.rand(5,4)
view = memoryview(arr)
view
<memory at 0x12699c318>
Run Code Online (Sandbox Code Playgroud)


Art*_*oul 5

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

在线尝试一下!

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

换句话说,.data数组变量的属性准确地给出了memoryview