【python】numpy库数组拼接快捷方式horizontal&vertical、np.c_、np.column_stack等官方文档详解与实例

时间:2021-07-14 23:50:54

上一篇用到了np.concatenante方法处理数组拼接问题,这个方法在pandas库同样有pd.concat的方法对应,因而选择上述方法会比较熟悉且常用,详见上一篇博客:【python】numpy库数组拼接np.concatenate官方文档详解与实例。

对于数组处理的方法还是有很多,下面进一步详解其他方式,方便在实操过程中有更多的选择。

1、np.vstack & np.hstack

  • np.vstack(tup)等价于np.concatenate(tup, axis=0)操作,vertical就是垂直方向上操作的意思
  • np.vstack(tup)实例:
  • np.hstack(tup)等价于np.concatenate(tup, axis=0)操作,horizontal就是水平方向上操作的意思
  • np.hstack(tup)实例

2、np.column_stack& np.row_stack

  • np.column_stack 官方文档
  • np.column_stack(tup)相当于np.concatenate((a1, a2, …), axis=1),对竖轴的数组进行横向的操作,pupil怎么读即操作对象是column轴实例:
  • np.row_stack等价于np.vstack

3、np.c_ & np.r_

  • np.c_ & np.r_是 np.column_stack& np.row_stack 的缩写

  • np.c_ & np.r_的语法与np.column_stack& np.row_stack有区别,np.c_ & np.r_是直接对数组进行操作,而np.column_stack& np.row_stack是对数组的元组或者列表操作。

np.c_ & np.r_实例:

总结:

  • np.concatenate(tup, axis=0)需要传递数组的元组或者列表、以及指定轴向。
  • np.vstack(tup) 和 np.hstack(tup)只需传入数组的元组即可,轴向在函数定义时已经确定,v即vertical垂直方向上,horizontal即水平方向。
  • np.row_stack(tup) 和 np.column_stack(tup)同样只需传入数组的元组即可,轴向同样在函数定义时已经确定,row_stack即对row的维度数据进行垂直方向的操作,column_stack对column的维度数据进行水平方向的操作。
  • axis=0 与 row_stack 中的row等价,row维度就是0轴,同理column维度就是1轴,所以这两个定义是指被操做的维度数据,而不是拼接方向;而vertical或者horizontal直接指定拼接方向。