合并从循环返回的numpy数组

时间:2014-03-26 13:49:04

标签: python arrays numpy

我有一个生成numpy数组的循环:

for x in range(0, 1000):
   myArray = myFunction(x)

返回的数组总是一维的。我想将所有数组合并为一个数组(也是一维数据。

我尝试了以下内容,但失败了

allArrays = []
for x in range(0, 1000):
   myArray = myFunction(x)
   allArrays += myArray

错误为ValueError: operands could not be broadcast together with shapes (0) (9095)。我怎样才能让它发挥作用?

例如这两个数组:

[ 234 342 234 5454 34 6]
[ 23 2 1 4 55 34]

应该合并到这个数组中:

[ 234 342 234 5454 34 6 23 2 1 4 55 34 ]

3 个答案:

答案 0 :(得分:7)

你可能意味着

allArrays = np.array([])
for x in range(0, 1000):
    myArray = myFunction(x)
    allArrays = np.concatenate([allArrays, myArray])

更简洁的方法(参见wims的回答)是使用list comprehension

allArrays = np.concatenate([myFunction(x) for x in range]) 

答案 1 :(得分:5)

allArrays = np.concatenate([myFunction(x) for x in range(1000)])

答案 2 :(得分:2)

您应该知道返回数组的形状。假设,myArray.shape =(2,4) 然后

allArrays = np.empty((0, 4))
for x in range(0, 1000):
    myArray = myFunction(x)
    allArrays = np.append(allArrays, myArray, axis = 0)