返回顶部
首页 > 资讯 > 精选 >numpy如何实现数组合并和矩阵拼接
  • 460
分享到

numpy如何实现数组合并和矩阵拼接

2023-06-14 07:06:51 460人浏览 独家记忆
摘要

这篇文章给大家分享的是有关numpy如何实现数组合并和矩阵拼接的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Numpy中提供了concatenate,append, stack类(包括hsatck、vstack、

这篇文章给大家分享的是有关numpy如何实现数组合并和矩阵拼接的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

Numpy中提供了concatenate,append, stack类(包括hsatck、vstack、dstack、row_stack、column_stack),r_和c_等类和函数用于数组拼接的操作。

各种函数的特点和区别如下标:

concatenate提供了axis参数,用于指定拼接方向
append默认先ravel再拼接成一维数组,也可指定axis
stack提供了axis参数,用于生成新的维度
hstack水平拼接,沿着行的方向,对列进行拼接
vstack垂直拼接,沿着列的方向,对行进行拼接
dstack沿着第三个轴(深度方向)进行拼接
column_stack水平拼接,沿着行的方向,对列进行拼接
row_stack垂直拼接,沿着列的方向,对行进行拼接
r_垂直拼接,沿着列的方向,对行进行拼接
c_水平拼接,沿着行的方向,对列进行拼接

直接合并

将两个一维数组合并成一个二维数组:

import torchimport numpy as npimport matplotlib.pyplot as plta = np.arange(0,15,0.1)b = 1.088 * a + 0.638 + np.random.rand() * 10print(a.shape,b.shape)points = np.array([a,b])print(points.shape)(150,) (150,)(2, 150)

append拼接

append(arr, values, axis=None)
arr待合并的数组的复制(特别主页是复制,所以要多耗费很多内存)
values用来合并到上述数组复制的值。如果指定了下面的参数axis的话,则这些值必须和arr的shape一致(shape[axis]之外都相等),否则的话,则没有要求。
axis要合并的轴.
>>> import numpy as np>>> ar1 = np.array([[1,2,3], [4,5,6]])>>> ar2 = np.array([[7,8,9], [11,12,13]])>>> np.append(ar1, ar2) # 先ravel扁平化再拼接,所以返回值为一个1维数组array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13])>>> np.append(ar1, ar2, axis=0)  # 沿第一个轴拼接,这里为行的方向 array([[ 1, 2, 3],  [ 4, 5, 6],  [ 7, 8, 9],  [11, 12, 13]])>>> np.append(ar1, ar2, axis=1)  # 沿第二个轴拼接,这里为列的方向 array([[ 1, 2, 3, 7, 8, 9],  [ 4, 5, 6, 11, 12, 13]])

concatenate拼接

concatenate(a_tuple, axis=0, out=None)
a_tuple:对需要合并的数组用元组的形式给出
axis待合并的轴,默认为0
 >>> import numpy as np>>> ar1 = np.array([[1,2,3], [4,5,6]])>>> ar2 = np.array([[7,8,9], [11,12,13]])>>> ar1array([[1, 2, 3],  [4, 5, 6]])>>> ar2array([[ 7, 8, 9],  [11, 12, 13]])>>> np.concatenate((ar1, ar2)) # 这里的第一轴(axis 0)是行方向array([[ 1, 2, 3],  [ 4, 5, 6],  [ 7, 8, 9],  [11, 12, 13]])>>> np.concatenate((ar1, ar2),axis=1) # 这里沿第二个轴,即列方向进行拼接array([[ 1, 2, 3, 7, 8, 9],  [ 4, 5, 6, 11, 12, 13]])>>> ar3 = np.array([[14,15,16]]) # shape为(1,3)的2维数组>>> np.concatenate((ar1, ar3)) # 一般进行concatenate操作的array的shape需要一致,当然如果array在拼接axis方向的size不一样,也可以完成>>> np.concatenate((ar1, ar3)) # ar3虽然在axis0方向的长度不一致,但axis1方向上一致,所以沿axis0可以拼接array([[ 1, 2, 3],  [ 4, 5, 6],  [14, 15, 16]])>>> np.concatenate((ar1, ar3), axis=1) # ar3和ar1在axis0方向的长度不一致,所以报错

hstack

>>> np.hstack((ar1,ar2)) # 水平拼接,沿着行的方向,对列进行拼接array([[ 1, 2, 3, 7, 8, 9],  [ 4, 5, 6, 11, 12, 13]])

vstack

>>> np.vstack((ar1,ar2)) # 垂直拼接,沿着列的方向,对行进行拼接array([[ 1, 2, 3],  [ 4, 5, 6],  [ 7, 8, 9],  [11, 12, 13]])

vstack

>>> np.dstack((ar1,ar2)) # 对于2维数组来说,沿着第三轴(深度方向)进行拼接, 效果相当于stack(axis=-1)array([[[ 1, 7],  [ 2, 8],  [ 3, 9]],  [[ 4, 11],  [ 5, 12],  [ 6, 13]]])

column_stack和row_stack

>>> np.column_stack((ar1,ar2)) # 水平拼接,沿着行的方向,对列进行拼接array([[ 1, 2, 3, 7, 8, 9],  [ 4, 5, 6, 11, 12, 13]])>>> np.row_stack((ar1,ar2)) # 垂直拼接,沿着列的方向,对行进行拼接array([[ 1, 2, 3],  [ 4, 5, 6],  [ 7, 8, 9],  [11, 12, 13]])

np.r_ 和np.c_

常用于快速生成ndarray数据

>>> np.r_[ar1,ar2]  # 垂直拼接,沿着列的方向,对行进行拼接array([[ 1, 2, 3],  [ 4, 5, 6],  [ 7, 8, 9],  [11, 12, 13]]) >>> np.c_[ar1,ar2] # 水平拼接,沿着行的方向,对列进行拼接array([[ 1, 2, 3, 7, 8, 9],  [ 4, 5, 6, 11, 12, 13]])

感谢各位的阅读!关于“numpy如何实现数组合并和矩阵拼接”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: numpy如何实现数组合并和矩阵拼接

本文链接: https://lsjlt.com/news/268851.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • numpy如何实现数组合并和矩阵拼接
    这篇文章给大家分享的是有关numpy如何实现数组合并和矩阵拼接的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Numpy中提供了concatenate,append, stack类(包括hsatck、vstack、...
    99+
    2023-06-14
  • numpy数组合并和矩阵拼接的实现
    Numpy中提供了concatenate,append, stack类(包括hsatck、vstack、dstack、row_stack、column_stack),r_和c_等类和...
    99+
    2024-04-02
  • numpy拼接矩阵的实现
    目录1、文档2、举例1、文档 使用numpy的 concatenate 拼接矩阵,文档里面这样解释: numpy.concatenate((a1, a2, ...), axis=0,...
    99+
    2024-04-02
  • python 如何将两个实数矩阵合并为一个复数矩阵
    问题描述: 有时需要把两个实数矩阵,一个作为实部,一个作为虚部,合并为一个复数矩阵,该如何操作? 解决办法: 假如是在第二个维度上进行合并(real: Data[:, 0, :, :] imag: Data[:, 1...
    99+
    2022-06-02
    python 实数矩阵合并 复数矩阵
  • NumPy如何实现矩阵乘法
    这篇文章主要介绍NumPy如何实现矩阵乘法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!NumPy 支持的几类矩阵乘法也很重要。元素级乘法你已看过了一些元素级乘法。你可以使用 multiply 函数或 * 运算符来实...
    99+
    2023-06-14
  • pandas如何实现数据的合并与拼接
    这篇文章将为大家详细讲解有关pandas如何实现数据的合并与拼接,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Pandas包的merge、join、concat方法可以完成数据的合并和拼接,merge方法...
    99+
    2023-06-21
  • Numpy如何实现矩阵运算及线性代数应用
    这篇文章主要介绍了Numpy如何实现矩阵运算及线性代数应用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、创建矩阵的方法import numpy as&...
    99+
    2023-06-14
  • Python NumPy中矩阵和通用函数如何使用
    这篇“Python NumPy中矩阵和通用函数如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python&...
    99+
    2023-07-02
  • Numpy中如何创建矩阵并等间隔抽取数据
    目录Numpy创建矩阵并等间隔抽取数据1、利用Numpy创建向量和二维矩阵1.2 创建二维矩阵2、等间隔抽取数据3、N维矩阵抽取同理对Numpy数据多个维度上等间隔取值总结Numpy...
    99+
    2023-05-12
    Numpy创建矩阵 Numpy等间隔抽取数据 Numpy抽取数据
  • ES6如何实现数组拼接
    这篇文章将为大家详细讲解有关ES6如何实现数组拼接,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。数组拼接展开运算符可以取代 concat的地位了const on...
    99+
    2024-04-02
  • python pandas中如何实现合并与拼接
    小编给大家分享一下python pandas中如何实现合并与拼接,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!前言在许多应用中,数据可能来自不同的渠道,在数据处理的过程中常常需要将这些数据集进行组合合并拼接,形成...
    99+
    2023-06-29
  • python如何实现列表拼接与合并
    这篇文章将为大家详细讲解有关python如何实现列表拼接与合并,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。列表拼接&合并首先从字符串列表开始:colors = ['r...
    99+
    2023-06-27
  • pandas数据的合并与拼接的实现
    目录1.Merge方法1.1内连接1.2外连接1.3左连接1.4右连接1.5基于多列的连接算法1.6基于index的连接方法2.join方法3.concat方法3.1series类型...
    99+
    2024-04-02
  • PHP如何使用数组循环来实现矩阵乘法
    这篇文章主要介绍“PHP如何使用数组循环来实现矩阵乘法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“PHP如何使用数组循环来实现矩阵乘法”文章能帮助大家解决问题。什么是矩阵乘法在数学中,一个矩阵是由...
    99+
    2023-07-06
  • pytorch中矩阵乘法和数组乘法怎么实现
    本篇内容介绍了“pytorch中矩阵乘法和数组乘法怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、torch.mul该乘法可简单理...
    99+
    2023-07-05
  • js如何实现数组合并
    这篇文章主要介绍了js如何实现数组合并,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。数组合并使用展开操作符,也可以将多个数组合并起来。感谢你能够认真阅读完这篇文章,希望小编分...
    99+
    2023-06-27
  • numpy中数组拼接、数组合并方法总结(append(), concatenate, hstack, vstack, column_stack, row_stack, np.r_, np.c_等)
    目录零. 维度和轴一、append()二、concatenate三、hstack, vstack四、column_stack, row_stack五、 np.r_, np.c_六、总...
    99+
    2024-04-02
  • php如何实现两个数组合并并且求和
    今天小编给大家分享一下php如何实现两个数组合并并且求和的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。实现方法:1、使用ar...
    99+
    2023-07-02
  • 如何使用NumPy水平组合数组和垂直组合数组
    本篇内容主要讲解“如何使用NumPy水平组合数组和垂直组合数组”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用NumPy水平组合数组和垂直组合数组”吧!1...
    99+
    2024-04-02
  • Java编程如何实现邻接矩阵表示稠密图
    这篇文章主要介绍了Java编程如何实现邻接矩阵表示稠密图,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。我们知道,要表示结点,我们可以用一个一维数组来表示,然而对于结点和结点之...
    99+
    2023-05-30
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作