我发现有关hstack
/vstack
的最新文档指出"您应该更喜欢np.concatenate
或np.stack
"。
但我认为它们的可读性比concatenate(a, 0)
或concatenate(a, 1)
所有 3 个"堆栈"函数都使用concatenate
(np.append
和column_stack
也是如此)。 看看他们的代码很有启发性。np.source(np.hstack)
例如。
他们所做的都是按摩输入数组的尺寸,确保它们是 1d 或 2d 等,然后使用适当的axis
调用concatenate
。 因此,从长远来看,知道如何在没有其他人的"拐杖"的情况下使用concatenate
是个好主意。
但人们将继续使用hstack
,并在方便的地方vstack
。dstack
和column_stack
不太常见。np.append
经常被滥用,应该被驱逐。
我认为这个"首选"注释是在添加np.stack
时添加的。np.stack
也使用concatenate
,但方式更复杂。 它插入一个新轴(带expand_dims
)。 我认为这是np.array
的概括. 当给定匹配数组的列表时,np.array
将它们连接到新的初始轴上。np.stack
执行与默认值相同的操作,但让我们指定一个不同的"新"轴进行串联。
我应该限定我的答案。 这不是官方的。 相反,我是根据代码知识做出有根据的猜测。