0
为什么numpy documentation建议更喜欢串连在hstack上?为什么numpy文档建议更喜欢串连在hstack上?
,但你应该更喜欢np.concatenate或np.stack。
根据this answer hstack是一个包装concatenate。那么为什么不使用提高代码可读性的hstack呢?
为什么numpy documentation建议更喜欢串连在hstack上?为什么numpy文档建议更喜欢串连在hstack上?
,但你应该更喜欢np.concatenate或np.stack。
根据this answer hstack是一个包装concatenate。那么为什么不使用提高代码可读性的hstack呢?
所以在hstack
实际的代码是:
arrs = [atleast_1d(_m) for _m in tup]
# As a special case, dimension 0 of 1-dimensional arrays is "horizontal"
if arrs[0].ndim == 1:
return _nx.concatenate(arrs, 0)
else:
return _nx.concatenate(arrs, 1)
它通过参数第一循环,并确保每个至少一维。这需要处理0d和标量元素,例如在np.hstack([0,1,np.arange(3)])
中。
其余选择之间的连结在一个和唯一的轴或第二个。
vstack
是相似的,除了它使东西至少2d,并在1日连接。
从SO问题/答案来看,这些问题仍在使用中,我认为在大多数情况下它们不会造成问题。这是造成大多数问题的np.append
。这是我希望他们永远不会添加的那个。
我认为hstack
和vstack
的主要问题是他们鼓励(或至少允许)对尺寸和形状的懒惰思考。当问题出现时,这是因为海报不明白具有相同数量的维度的意思是什么,或者形状必须相同(除了一个轴)。
调用堆栈中的少一帧? – wim
因为如果你试图理解他们两个,你可能不在乎“可读性”和更多性能? – Divakar
可能是因为语义对于2以外的数组维度更清晰。 – user2357112