2

我正在尝试将 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) 函数,但我不知道如何在没有示例的情况下调用它。

谢谢!

4

2 回答 2

7

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

arr = np.random.rand(5,4)
view = memoryview(arr)
view
<memory at 0x12699c318>
于 2018-01-11T19:30:59.087 回答
2

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

在线尝试!

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

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

于 2021-01-13T10:34:03.247 回答