我有一个关于numpy及其记忆的问题。是否可以在不复制多个numpy数组的情况下生成视图或其他内容?
import numpy as np
def test_var_args(*inputData):
dataArray = np.array(inputData)
print np.may_share_memory(inputData, dataArray) # prints false, b.c. of no shared memory
test_var_args(np.arange(32),np.arange(32)*2)
我有一个带图像的c ++应用程序,想要做一些python魔法。我使用c-api将行中的图像传递给python脚本,并希望将它们组合而不复制它们。
我能够传递数据s.t. c ++和python共享相同的内存。现在我想将内存安排到一个numpy视图/数组或类似的东西。
c ++中的图像不会连续出现在内存中(我将它们切片)。我交给python的行是在连续的内存块中安排的。
我传递的图像数量各不相同。如果存在预分配技巧,也许我可以改变它。
答案 0 :(得分:0)
这里的答案中有一个有用的讨论:Can memmap pandas series. What about a dataframe?
简而言之:
这是Pandas'使用的默认BlockManager所允许的唯一行为。 DataFrame,内部组织DataFrame的内存。
虽然可以monkey patch the BlockManager更改此行为,但在这种情况下,您的提供数据将被引用。