为什么官方更喜欢 concantane 而不是 Numpy 中的 hstack/vstack?



我发现有关hstack/vstack的最新文档指出"您应该更喜欢np.concatenatenp.stack"。

但我认为它们的可读性比concatenate(a, 0)concatenate(a, 1)

所有 3 个"堆栈"函数都使用concatenate(np.appendcolumn_stack也是如此)。 看看他们的代码很有启发性。np.source(np.hstack)例如。

他们所做的都是按摩输入数组的尺寸,确保它们是 1d 或 2d 等,然后使用适当的axis调用concatenate。 因此,从长远来看,知道如何在没有其他人的"拐杖"的情况下使用concatenate是个好主意。

但人们将继续使用hstack,并在方便的地方vstackdstackcolumn_stack不太常见。np.append经常被滥用,应该被驱逐。

我认为这个"首选"注释是在添加np.stack时添加的。np.stack也使用concatenate,但方式更复杂。 它插入一个新轴(带expand_dims)。 我认为这是np.array的概括. 当给定匹配数组的列表时,np.array将它们连接到新的初始轴上。np.stack执行与默认值相同的操作,但让我们指定一个不同的"新"轴进行串联。

我应该限定我的答案。 这不是官方的。 相反,我是根据代码知识做出有根据的猜测。

最新更新