我想用python创建一个nxm ndarray,如下所示:
myarray = np.empty(n)
for index in range(5):
row = do_some_calculations(index)# returns an array of length n
np.stack[myarray, row])
哪个不起作用。我收到一个错误:
ValueError: all the input array dimensions except for the concatenation axis must match exactly
另外,我不希望第一行为零。我是否必须在循环中使用if-else语句,或者有更多的pythonic方法来做到这一点?
答案 0 :(得分:1)
尝试使用np.vstack
代替np.stack
。
你的意图似乎是迭代地在ND数组的底部附加一个数组(顺便说一下,效率很低,看看你是否不能一次性生成整个数组)。在第一次迭代之后,myarray
的形状将更改(假设您重新分配,代码未显示)到2个字母矩阵。 numpyp.stack
州的文件
数组:array_like的序列 每个数组必须具有相同的形状
numpy.vstack
限制性较小。