numpy.concatenate函数用法详解

作者:houyushui 时间:2022-04-09 06:18:52 

这个concatenate用于将矩阵合并,他将沿着已经存在的轴合并一个矩阵,相关参数有(a1, a2, ...), axis=0, out=None, dtype=None, casting="same_kind",其中第一个参数是用户输入的矩阵, 这些输入的矩阵必须要在将要合并的对应的轴上有相同的形状,

官方文档的机器翻译:矩阵必须具有相同的形状,除非是与轴对应的尺寸(默认为第一个)。

numpy.concatenate((a1, a2, ...), axis=0, out=None, dtype=None, casting="same_kind")

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=1的轴,进行合并:

a = np.arange(3*3).reshape((3,3))
b = np.arange(3*4).reshape((3,4))

a,b
(array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]]),
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]]))

np.concatenate([a,b],axis=1)
array([[ 0,  1,  2,  0,  1,  2,  3],
      [ 3,  4,  5,  4,  5,  6,  7],
      [ 6,  7,  8,  8,  9, 10, 11]])

上面是沿着列进行合并,尽管他们的列数不同,但是他们的行数相同,因此也可以合并。

 axis int, optional
      The axis along which the arrays will be joined. If axis is None, arrays are flattened before use. Default is 0.

如果将axis设置为None,那么将对给出的矩阵先进行展平,即先将其转换为一维数组,再合并,默认的axis参数是0:

np.concatenate([a,b],axis=None)
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  0,  1,  2,  3,  4,  5,  6,  7,
       8,  9, 10, 11])

casting {‘no’, ‘equiv’, ‘safe’, ‘same_kind’, ‘unsafe’}, optional
       Controls what kind of data casting may occur. Defaults to ‘same_kind’.

下面给出一些可能触发的错误:

np.concatenate(a,b,axis=None)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-36-0e550a3d06f6> in <module>
----> 1 np.concatenate(a,b,axis=None)
 
<__array_function__ internals> in concatenate(*args, **kwargs)
 
TypeError: concatenate() got multiple values for argument 'axis'

这个类型错误发生的原因是,将要合并的两个数组未添加括号的就作为参数输入了

正确的形式如下:

np.concatenate([a,b],axis=None)
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  0,  1,  2,  3,  4,  5,  6,  7,
       8,  9, 10, 11])

或者:

c = (a,b)
np.concatenate(c,axis=None)
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  0,  1,  2,  3,  4,  5,  6,  7,
       8,  9, 10, 11])

来源:https://blog.csdn.net/houyushui/article/details/116894753

标签:numpy,concatenate
0
投稿

猜你喜欢

  • 用Dreamweaver实现飘浮光球特效

    2008-03-03 12:28:00
  • 解决Python3 抓取微信账单信息问题

    2021-10-15 12:54:02
  • vue中的mescroll搜索运用及各种填坑处理

    2024-04-30 10:26:39
  • Python编程django实现同一个ip十分钟内只能注册一次

    2023-01-18 17:01:55
  • 详解python string类型 bytes类型 bytearray类型

    2023-09-22 20:47:18
  • vue服务器代理proxyTable配置如何解决跨域

    2024-04-28 09:22:32
  • MySQL的使用中实现读写分离的教程

    2024-01-20 00:03:23
  • vue cli+axios踩坑记录+拦截器使用方式,代理跨域proxy

    2023-07-02 16:38:30
  • Python装饰器的函数式编程详解

    2023-12-27 16:35:31
  • 一文了解Python 流程控制

    2021-01-27 18:37:28
  • php实现12306余票查询、价格查询示例

    2024-05-02 17:08:11
  • Python分支语句与循环语句应用实例分析

    2022-12-02 03:35:31
  • 算法系列15天速成 第十一天 树操作(上)

    2022-08-03 13:03:56
  • vue + typescript + video.js实现 流媒体播放 视频监控功能

    2024-05-09 15:10:38
  • 一个不错网速测试代码

    2008-07-20 13:41:00
  • mysql 5.1版本修改密码及远程登录mysql数据库的方法

    2024-01-17 15:38:02
  • 如何修改被表单引用的ASP页面?

    2010-06-10 18:32:00
  • pytorch 彩色图像转灰度图像实例

    2023-08-02 17:28:37
  • Windows使用GitHub Desktop详解

    2022-08-23 14:36:01
  • AJAX和DOM的运行经验

    2008-05-02 21:05:00
  • asp之家 网络编程 m.aspxhome.com