如何将数据从一个numpy数组复制到另一个数组
从数组b复制数据到数组a的最快方法是什么,同时又不改变数组a的地址。我需要这样做是因为一个外部库(PyFFTW)使用了指向我的数组的指针,这个指针不能改变。
举个例子:
a = numpy.empty(n, dtype=complex)
for i in xrange(a.size):
a[i] = b[i]
有没有办法不使用循环来完成这个操作?
8 个回答
23
a = numpy.array(b)
这个方法比建议的解决方案要快得多,适用于numpy v1.6之前的版本,而且它还会复制数组。不过,我没法和copyto(a,b)进行比较,因为我没有最新版本的numpy。
31
NumPy 1.7 版本有一个叫 numpy.copyto
的功能,可以满足你的需求:
numpy.copyto(dst, src)
这个功能可以把一个数组的值复制到另一个数组中,并根据需要进行扩展。
详细信息请查看: https://docs.scipy.org/doc/numpy/reference/generated/numpy.copyto.html
95
我认为
a = numpy.empty_like(b)
a[:] = b
会很快地复制这些值。正如Funsi提到的,最近版本的numpy也有一个叫做copyto
的功能。