我想在结果数组中添加一些动态计算的值:
out = []
for item in foo:
spam = get_spam(foo)
out.append(spam)
return np.array(out)
不幸的是,这不起作用,因为垃圾邮件形状是(10,1)而 out 数组有一个额外的维度 - 这很糟糕。
我做了类似的事情:
for index, item in enumerate(foo):
spam = get_spam(foo)
if index == 0:
out = spam
else:
out = np.append(out, spam, 1)
return out
但这个解决方案并不简短,易读且易读。
这怎么用pythonic方式?
答案 0 :(得分:3)
您可以使用numpy concatenate
函数:
np.concatenate([get_spam(foo) for item in foo])
它最终接受一个参数 axes 作为连接方向(垂直/水平)。
答案 1 :(得分:1)
如果垃圾邮件始终具有形状(10,1),则可以使用[:,0]
for item in foo:
spam = get_spam(foo)
out.append(spam[:,0])
return np.array(out)