Python 合并从循环返回的numpy数组
我有一个生成numpy数组的循环:Python 合并从循环返回的numpy数组,python,arrays,numpy,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:操作数无法与形状(0)(9095)一起广播。如何使
for x in range(0, 1000):
myArray = myFunction(x)
返回的数组总是一维的。我想将所有数组合并成一个数组(也是一维数组)
我尝试了以下方法,但失败了
allArrays = []
for x in range(0, 1000):
myArray = myFunction(x)
allArrays += myArray
错误为ValueError:操作数无法与形状(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 ]
你可能是说
allArrays = np.array([])
for x in range(0, 1000):
myArray = myFunction(x)
allArrays = np.concatenate([allArrays, myArray])
更简洁的方法(参见wims答案)是使用
您应该知道返回数组的形状 然后
我想连接它们。可能连接((a,b),1)或hstack((a,b))另请看我是否使用了您的第一个示例。我得到了错误
TypeError:只有length-1数组可以转换为Python标量
@ustroetz:感谢您的捕获,忘记了括号,因为concatenate将数组作为列表进行连接。这不是第一行作为空值吗?不,因为我们创建的数组包含0行和4个columns:array([],shape=(0,4),dtype=float64)
allArrays = np.concatenate([myFunction(x) for x in range])
allArrays = np.concatenate([myFunction(x) for x in range(1000)])
allArrays = np.empty((0, 4))
for x in range(0, 1000):
myArray = myFunction(x)
allArrays = np.append(allArrays, myArray, axis = 0)