您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

我什么时候应该使用hstack / vstack vs append vs concatenate vs column_stack

我什么时候应该使用hstack / vstack vs append vs concatenate vs column_stack

除了以外,所有功能都是用Python编写的np.concatenate。使用IPython shell,您只需使用??

如果不是,则为以下代码摘要

vstack
concatenate([atleast_2d(_m) for _m in tup], 0)
i.e. turn all inputs in to 2d (or more) and concatenate on first

hstack
concatenate([atleast_1d(_m) for _m in tup], axis=<0 or 1>)

colstack
transform arrays with (if needed)
    array(arr, copy=False, subok=True, ndmin=2).T

append
concatenate((asarray(arr), values), axis=axis)

换句话说,它们都通过调整输入数组的尺寸,然后在右轴上串联来起作用。它们只是便利功能

和更新的np.stack

arrays = [asanyarray(arr) for arr in arrays]
shapes = set(arr.shape for arr in arrays)
result_ndim = arrays[0].ndim + 1
axis = normalize_axis_index(axis, result_ndim)
sl = (slice(None),) * axis + (_nx.newaxis,)

expanded_arrays = [arr[sl] for arr in arrays]
concatenate(expanded_arrays, axis=axis, out=out)

也就是说,它会扩展所有输入的暗淡效果(有点像np.expand_dims),然后进行串联。使用axis=0效果与相同np.array

hstack 文档现在添加

函数concatenatestackblock提供更多常规的堆叠和串联操作。

np.block也是新的。实际上,它沿着嵌套列表递归连接。

其他 2022/1/1 18:33:10 有615人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶