将numpy数组转换为MemoryView对象

时间:2018-01-11 18:14:32

标签: arrays numpy memoryview

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

谢谢!

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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