首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将数据从numpy数组复制到另一个数组

如何将数据从numpy数组复制到另一个数组
EN

Stack Overflow用户
提问于 2011-06-22 05:06:42
回答 5查看 105.8K关注 0票数 93

在不修改数组a的地址的情况下,将数据从数组b复制到数组a的最快方法是什么?我之所以需要这个方法,是因为一个外部库(PyFFTW)使用了一个指向我的数组的指针,而这个指针是不能改变的。

例如:

代码语言:javascript
复制
a = numpy.empty(n, dtype=complex)
for i in xrange(a.size):
  a[i] = b[i]

可以在没有循环的情况下做到这一点吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-06-22 05:15:42

我相信

代码语言:javascript
复制
a = numpy.empty_like(b)
a[:] = b

将快速复制值。正如Funsi提到的,numpy的最新版本也有copyto功能。

票数 91
EN

Stack Overflow用户

发布于 2014-04-26 07:09:28

代码语言:javascript
复制
a = numpy.array(b)

甚至比建议的numpy v1.6版本的解决方案更快,并且还复制了数组。但是,我不能用copyto(a,b)来测试它,因为我没有最新版本的numpy。

票数 23
EN

Stack Overflow用户

发布于 2011-06-22 13:46:36

您可以轻松使用:

代码语言:javascript
复制
b = 1*a

这是最快的方法,但也有一些问题。如果你不直接定义adtype,也不检查bdtype,你会有麻烦的。例如:

代码语言:javascript
复制
a = np.arange(10)        # dtype = int64
b = 1*a                  # dtype = int64

a = np.arange(10.)       # dtype = float64
b = 1*a                  # dtype = float64

a = np.arange(10)        # dtype = int64
b = 1. * a               # dtype = float64

我希望,我能把这一点说清楚。有时,您只需执行一次小小的操作即可更改数据类型。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6431973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档