【发布时间】:2020-03-12 22:35:22
【问题描述】:
设置:
我有两个来自共享内存 reals 和 imags 的数组:
#/usr/bin/env python2
reals = multiprocessing.RawArray('d', 10000000)
imags = multiprocessing.RawArray('d', 10000000)
然后我将它们设为numpy-arrays,命名为reals2 和imags2,没有任何副本:
import numpy as np
reals2 = np.frombuffer(reals)
imags2 = np.frombuffer(imags)
# check if the objects did a copy
assert reals2.flags['OWNDATA'] is False
assert imags2.flags['OWNDATA'] is False
然后我想创建一个np.complex128 1D-array data,再次不复制数据,但我不知道该怎么做。
问题:
你能从一对浮点数组中创建一个np.complex128一维数组data,而不需要复制,是/否?
如果是,怎么做?
【问题讨论】:
-
数组的数据缓冲区,无论 dtype 是什么,都是一个连续的块。
标签: python performance numpy zero-copy