首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Python中通过迭代在numpy/scipy中构建数组?

在Python中通过迭代在numpy/scipy中构建数组?
EN

Stack Overflow用户
提问于 2010-04-15 07:13:33
回答 2查看 44.3K关注 0票数 23

通常,我通过迭代一些数据来构建数组,例如:

代码语言:javascript
复制
my_array = []
for n in range(1000):
  # do operation, get value 
  my_array.append(value)
# cast to array
my_array = array(my_array)

我发现我必须首先构建一个列表,然后将它(使用" array ")转换为一个数组。有没有办法绕过这些问题?所有这些强制转换调用使代码变得混乱。我如何迭代地构建"my_array",因为它从一开始就是一个数组?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-15 08:24:06

如果我没理解错你的问题,这应该是你想做的:

代码语言:javascript
复制
# the array passed into your function
ax = NP.random.randint(10, 99, 20).reshape(5, 4)

# just define a function to operate on some data
fnx = lambda x : NP.sum(x)**2

# apply the function directly to the numpy array
new_row = NP.apply_along_axis(func1d=fnx, axis=0, arr=ax)

# 'append' the new values to the original array
new_row = new_row.reshape(1,4)
ax = NP.vstack((ax, new_row))
票数 -3
EN

Stack Overflow用户

发布于 2010-04-16 04:57:31

NumPy提供了一个“fromiter”方法:

代码语言:javascript
复制
def myfunc(n):
    for i in range(n):
        yield i**2


np.fromiter(myfunc(5), dtype=int)

哪一项会产生

代码语言:javascript
复制
array([ 0,  1,  4,  9, 16])
票数 34
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2641691

复制
相关文章

相似问题

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