为什么numpy文档建议优先使用concatenete而不是hstack?

2024-10-04 09:29:09 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么numpy documentation推荐使用concatente而不是hstack?你知道吗

but you should prefer np.concatenate or np.stack.

根据this answer,hstack是围绕concatenate的包装器。在这种情况下,为什么不使用hstack来提高代码的可读性呢?你知道吗


Tags: oranswernumpyyoustackdocumentationnp情况
1条回答
网友
1楼 · 发布于 2024-10-04 09:29:09

所以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)

它首先循环遍历参数,并确保每个参数至少为1d。这会处理0d和标量元素,例如在np.hstack([0,1,np.arange(3)])中。你知道吗

其余的在一个和唯一的轴或第二个轴上连接之间进行选择。你知道吗

vstack是类似的,除了它使事物至少成为2d,并在第一个上串联

从这些问题/答案来看,它们仍然被大量使用,我认为在大多数情况下,它们不会引起问题。是np.append造成了大多数问题。我真希望他们不会再加上这个。你知道吗

我认为hstackvstack的主要问题是它们鼓励(或至少允许)懒惰地思考尺寸和形状。当问题出现时,是因为海报不明白什么是具有相同数量的尺寸,或者形状必须相等(除了一个轴)。你知道吗

相关问题 更多 >