专栏首页python前行者numpy库数组拼接np.concatenate()函数

numpy库数组拼接np.concatenate()函数

在实践过程中,会经常遇到数组拼接的问题,基于numpy库concatenate是一个非常好用的数组操作函数。

1、concatenate((a1, a2, …), axis=0)官方文档详解

concatenate(...)
    concatenate((a1, a2, ...), axis=0)

    Join a sequence of arrays along an existing axis.

    Parameters
    ----------
    a1, a2, ... : sequence of array_like
        The arrays must have the same shape, except in the dimension
        corresponding to `axis` (the first, by default).
    axis : int, optional
        The axis along which the arrays will be joined.  Default is 0.

    Returns
    -------
    res : ndarray
        The concatenated array.

    See Also
    --------
    ma.concatenate : Concatenate function that preserves input masks.
    array_split : Split an array into multiple sub-arrays of equal or
                  near-equal size.
    split : Split array into a list of multiple sub-arrays of equal size.
    hsplit : Split array into multiple sub-arrays horizontally (column wise)
    vsplit : Split array into multiple sub-arrays vertically (row wise)
    dsplit : Split array into multiple sub-arrays along the 3rd axis (depth).
    stack : Stack a sequence of arrays along a new axis.
    hstack : Stack arrays in sequence horizontally (column wise)
    vstack : Stack arrays in sequence vertically (row wise)
    dstack : Stack arrays in sequence depth wise (along third dimension)

2、Parameters参数

  • 传入的参数必须是一个多个数组的元组或者列表
  • 另外需要指定拼接的方向,默认是 axis = 0,也就是说对0轴的数组对象进行纵向的拼接(纵向的拼接沿着axis= 1方向);注:一般axis = 0,就是对该轴向的数组进行操作,操作方向是另外一个轴,即axis=1。
In [23]: a = np.array([[1, 2], [3, 4]])
In [24]: b = np.array([[5, 6]])
In [25]: np.concatenate((a, b), axis=0)
Out[25]:
array([[1, 2],
       [3, 4],
       [5, 6]])

传入的数组必须具有相同的形状,这里的相同的形状可以满足在拼接方向axis轴上数组间的形状一致即可

如果对数组对象进行 axis= 1 轴的拼接,方向是横向0轴,a是一个2*2维数组,axis= 0轴为2,b是一个1*2维数组,axis= 0 是1,两者的形状不等,这时会报错

In [27]: np.concatenate((a,b),axis = 1)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-27-aa1228decc36> in <module>()
----> 1 np.concatenate((a,b),axis = 1)

ValueError: all the input array dimensions except for the concatenation axis must match exactly

将b进行转置,得到b为2*1维数组:

In [28]: np.concatenate((a,b.T),axis = 1)
Out[28]:
array([[1, 2, 5],
       [3, 4, 6]])

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python3之数组(array)

    当我们需要1000万个浮点数的时候,数组(array)的效率要比列表(list)要高得多,因为数组在背后存的并不是float对象,而是数字的机器翻译,也就是字节...

    周小董
  • python爬虫的重定向问题

    在使用python爬虫的过程中难免会遇到很多301,302的问题。他们出现时,很大程度的影响到我们的爬虫速度和信息的准确性。下面针对不同的模块给出不同的解决方案...

    周小董
  • Python库简单说明(持续更新...)

    目前,网上已有成千上万个Python包,但几乎没有人能够全部知道它们。单单 PyPi上就有超过47000个包列表。

    周小董
  • 六,ESP8266 TCP Client(基于Lua脚本语言)五,ESP8266 TCP服务器多连接

    今天不知道是不是让我姐挺失望.......很多时候都不知道自己努力的方向对不对,,以后能不能带给家人最美好的期盼...... Init.lua 没啥改变,,就改...

    杨奉武
  • 围观|中国Martech生态究竟长什么样?

    前不久,关注Martech的国内知名新媒体弯弓研究院也制作并发布了2019中国营销技术生态图谱2.0版本。该图谱显示,原力大数据在会员管理、千人千面、销售自动化...

    数据猿
  • 对OpenFlow下的一种网络安全应用模型(OFX)的思考

    最近有时间学习了一篇发表在NSDI’16的叫做 ”Enabling Practical Software-defined Networking Security...

    SDNLAB
  • R语言基础教程——第3章:数据结构——数组

    数组(array)与矩阵类似,但是维度可以大于2。数组可通过array函数创建,形式如下:

    DoubleHelix
  • python自学成才之路 miniconda创建虚拟环境

    前面虚拟环境是安装在一个Python解释器下的,如果想使用不同版本的Python环境该怎么创建呢?这个时候miniconda就派上用场了。Miniconda可以...

    我是李超人
  • maven的hello word

    东营浪人
  • 小米技术分享:解密小米抢购系统千万高并发架构的演进和实践

    大家对下面这个排队的场景应该非常熟悉,这个是小米手机抢购的用户排队交互图,大家看到这些排队的兔子时,说明也有很多用户在同一时间向小米抢购系统提交了购买请求。

    JackJiang

扫码关注云+社区

领取腾讯云代金券