2024-10-04 09:29:09 发布
网友
为什么numpy documentation推荐使用concatente而不是hstack?你知道吗
but you should prefer np.concatenate or np.stack.
根据this answer,hstack是围绕concatenate的包装器。在这种情况下,为什么不使用hstack来提高代码的可读性呢?你知道吗
所以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)
它首先循环遍历参数,并确保每个参数至少为1d。这会处理0d和标量元素,例如在np.hstack([0,1,np.arange(3)])中。你知道吗
np.hstack([0,1,np.arange(3)])
其余的在一个和唯一的轴或第二个轴上连接之间进行选择。你知道吗
vstack是类似的,除了它使事物至少成为2d,并在第一个上串联
vstack
从这些问题/答案来看,它们仍然被大量使用,我认为在大多数情况下,它们不会引起问题。是np.append造成了大多数问题。我真希望他们不会再加上这个。你知道吗
np.append
我认为hstack和vstack的主要问题是它们鼓励(或至少允许)懒惰地思考尺寸和形状。当问题出现时,是因为海报不明白什么是具有相同数量的尺寸,或者形状必须相等(除了一个轴)。你知道吗
所以
hstack
中的实际代码是:它首先循环遍历参数,并确保每个参数至少为1d。这会处理0d和标量元素,例如在
np.hstack([0,1,np.arange(3)])
中。你知道吗其余的在一个和唯一的轴或第二个轴上连接之间进行选择。你知道吗
vstack
是类似的,除了它使事物至少成为2d,并在第一个上串联从这些问题/答案来看,它们仍然被大量使用,我认为在大多数情况下,它们不会引起问题。是
np.append
造成了大多数问题。我真希望他们不会再加上这个。你知道吗我认为
hstack
和vstack
的主要问题是它们鼓励(或至少允许)懒惰地思考尺寸和形状。当问题出现时,是因为海报不明白什么是具有相同数量的尺寸,或者形状必须相等(除了一个轴)。你知道吗相关问题 更多 >
编程相关推荐