广告
返回顶部
首页 > 资讯 > 精选 >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://www.lsjlt.com/news/268851.html(转载时请注明来源链接)

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 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+
    2022-11-11
  • python 如何将两个实数矩阵合并为一个复数矩阵
    问题描述: 有时需要把两个实数矩阵,一个作为实部,一个作为虚部,合并为一个复数矩阵,该如何操作? 解决办法: 假如是在第二个维度上进行合并(real: Data[:, 0, :, :] imag: Data[:, 1...
    99+
    2022-06-02
    python 实数矩阵合并 复数矩阵
  • pandas如何实现数据的合并与拼接
    这篇文章将为大家详细讲解有关pandas如何实现数据的合并与拼接,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Pandas包的merge、join、concat方法可以完成数据的合并和拼接,merge方法...
    99+
    2023-06-21
  • Numpy如何实现矩阵运算及线性代数应用
    这篇文章主要介绍了Numpy如何实现矩阵运算及线性代数应用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、创建矩阵的方法import numpy as&...
    99+
    2023-06-14
  • python如何实现列表拼接与合并
    这篇文章将为大家详细讲解有关python如何实现列表拼接与合并,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。列表拼接&合并首先从字符串列表开始:colors = ['r...
    99+
    2023-06-27
  • python pandas中如何实现合并与拼接
    小编给大家分享一下python pandas中如何实现合并与拼接,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!前言在许多应用中,数据可能来自不同的渠道,在数据处理的过程中常常需要将这些数据集进行组合合并拼接,形成...
    99+
    2023-06-29
  • ES6如何实现数组拼接
    这篇文章将为大家详细讲解有关ES6如何实现数组拼接,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。数组拼接展开运算符可以取代 concat的地位了const on...
    99+
    2022-10-19
  • PHP如何使用数组循环来实现矩阵乘法
    这篇文章主要介绍“PHP如何使用数组循环来实现矩阵乘法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“PHP如何使用数组循环来实现矩阵乘法”文章能帮助大家解决问题。什么是矩阵乘法在数学中,一个矩阵是由...
    99+
    2023-07-06
  • js如何实现数组合并
    这篇文章主要介绍了js如何实现数组合并,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。数组合并使用展开操作符,也可以将多个数组合并起来。感谢你能够认真阅读完这篇文章,希望小编分...
    99+
    2023-06-27
  • php如何实现两个数组合并并且求和
    今天小编给大家分享一下php如何实现两个数组合并并且求和的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。实现方法:1、使用ar...
    99+
    2023-07-02
  • php如何实现合并数组且key不变
    这篇文章主要讲解了“php如何实现合并数组且key不变”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php如何实现合并数组且key不变”吧!方法:1、使用“+”运算符,语法“数组1 + 数组...
    99+
    2023-06-20
  • numpy数组的重塑和转置如何实现
    这篇文章主要介绍“numpy数组的重塑和转置如何实现”,在日常操作中,相信很多人在numpy数组的重塑和转置如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”numpy数组的重塑和转置如何实现”的疑惑有所...
    99+
    2023-07-05
  • Java和Numpy的结合,如何实现实时数据处理?
    在当今数据时代,数据处理变得越来越重要。实时数据处理是一个重要的需求,因为它可以帮助我们及时了解数据的变化趋势,从而做出正确的决策。Java和Numpy是两个强大的工具,结合使用可以实现实时数据处理。下面我们来看一下Java和Numpy的...
    99+
    2023-10-15
    实时 numpy 对象
  • Java中,如何使用数组实现并发接口?
    在Java编程中,数组是一种非常常见的数据结构。同时,在多线程编程中,并发接口也是必不可少的。那么,在Java中,如何使用数组实现并发接口呢?本文将从以下几个方面进行介绍: Java中的并发接口 在Java中,有很多种并发接口,例如:...
    99+
    2023-06-24
    数组 接口 并发
  • Numpy数组的转置和轴交换如何实现
    这篇“Numpy数组的转置和轴交换如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Numpy数组的转置和轴交换如何实现...
    99+
    2023-07-05
  • Go 中的 NumPy 数组索引:如何实现和优化?
    Go 语言是一种快速而高效的编程语言,由于其速度和可扩展性,越来越多的开发人员开始将其用于数据科学和机器学习领域。而 NumPy 数组是 Python 中用于数值计算的核心库之一,它提供了一种高效的多维数组对象,以及处理这些数组的各种工具。...
    99+
    2023-06-27
    文件 numpy 索引
  • jQuery如何实现合并/追加数组并去除重复项的方法
    这篇文章主要为大家展示了“jQuery如何实现合并/追加数组并去除重复项的方法”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jQuery如何实现合并/追加数组并...
    99+
    2022-10-19
  • 如何在Java中实现高效的数组并发接口?
    在Java中,数组是一种非常常见的数据结构,但是在并发编程中,数组的使用却可能带来一些问题。因为数组是一种线性的数据结构,所以在并发访问时,可能会出现竞争条件,导致数据不一致。为了解决这个问题,Java提供了一些高效的数组并发接口,本文将介...
    99+
    2023-06-24
    数组 接口 并发
  • 如何通过php接口和ECharts实现统计图的数据分组和聚合
    如何通过PHP接口和ECharts实现统计图的数据分组和聚合随着数据分析和可视化需求的增加,通过接口和ECharts实现统计图的数据分组和聚合变得越来越重要。在本文中,我们将介绍如何使用PHP编写接口,并结合ECharts实现数据的分组和聚...
    99+
    2023-12-17
    echarts PHP接口 数据分组和聚合
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作