返回顶部
首页 > 资讯 > 精选 >numpy中hstack、vstack、stack和concatenate函数怎么使用
  • 707
分享到

numpy中hstack、vstack、stack和concatenate函数怎么使用

2023-07-05 05:07:36 707人浏览 独家记忆
摘要

本篇内容主要讲解“numpy中hstack、vstack、stack和concatenate函数怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“numpy中hstack、vstack、st

本篇内容主要讲解“numpy中hstack、vstack、stack和concatenate函数怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“numpy中hstack、vstack、stack和concatenate函数怎么使用”吧!

1、concatenate()

我们先来介绍最全能的concatenate()函数,后面的几个函数其实都可以用concatenate()函数来进行等价操作。

concatenate()函数根据指定的维度,对一个元组、列表中的list或者ndarray进行连接,函数原型:

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

先来看几个例子,一个2*2的数组和一个1*2的数组,在第0维进行拼接,得到一个3*2的数组:

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

输出为:

array([[1, 2],       [3, 4],       [5, 6]])

进一步,一个2*2的数组和一个2*1的数组,在第01维进行拼接,得到一个2*3的数组:

np.concatenate((a, b.T), axis=1)

输出为:

array([[1, 2, 5],       [3, 4, 6]])

上面两个简单的例子中,拼接的维度的长度是不同的,但是其他维度的长度必须是相同的,这也是使用concatenate()函数的一个基本原则,违背此规则就会报错,例如一个2*2的数组和一个1*2的数组,在第1维进行拼接:

np.concatenate((a, b), axis=1)

上面的代码会报错:

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

2、stack()

stack()函数的原型是numpy.stack(arrays, axis=0),即将一堆数组的数据按照指定的维度进行堆叠。
我们先看两个简单的例子:

a = np.array([1,2,3])b = np.array([2,3,4])np.stack([a,b],axis=0)

输出为:

array([[1, 2, 3],       [2, 3, 4]])

进一步:

np.stack([a,b],axis=1)

输出为:

array([[1, 2],       [2, 3],       [3, 4]])

如果换作是二维数组:

a = np.array([[1,2,3]])b = np.array([[2,3,4]])np.stack([a,b],axis=0)

输出为:

array([[[1, 2, 3]],       [[2, 3, 4]]])

可以看到,进行stack的两个数组必须有相同的形状,同时,输出的结果的维度是比输入的数组都要多一维的。我们拿第一个例子来举例,两个含3个数的一维数组在第0维进行堆叠,其过程等价于先给两个数组增加一个第0维,变为1*3的数组,再在第0维进行concatenate()操作:

a = np.array([1,2,3])b = np.array([2,3,4])a = a[np.newaxis,:]b = b[np.newaxis,:]np.concatenate([a,b],axis=0)

输出为:

array([[1, 2, 3],       [2, 3, 4]])

3、vstack()

vstack()的函数原型:vstack(tup) ,参数tup可以是元组,列表,或者numpy数组,返回结果为numpy的数组。它是垂直(按照行顺序)的把数组给堆叠起来。
举两个简单的例子:

a = np.array([1,2,3])b = np.array([2,3,4])np.vstack([a,b])

输出为:

array([[1, 2, 3],       [2, 3, 4]])

进一步:

a=[[1],[2],[3]]b=[[1],[2],[3]]np.vstack([a,b])

输出为:

array([[1],       [2],       [3],       [1],       [2],       [3]])

如果进行vstack的数组至少有两维,那么相当于np.concatenate([a,b],axis=0),我们通过例子进行对比:

a=[[1],[2],[3]]b=[[1],[2],[3]]np.concatenate([a,b],axis=0)

输出为:

array([[1],       [2],       [3],       [1],       [2],       [3]])

可以看到,跟刚才的结果是一致的,但是如果进行堆叠的两个数组只有一维,那么结果是不同的:

a = np.array([1,2,3])b = np.array([2,3,4])np.concatenate([a,b],axis=0)

上面得到的结果为:

array([1, 2, 3, 2, 3, 4])

4、hstack()

hstack()的函数原型:hstack(tup) ,参数tup可以是元组,列表,或者numpy数组,返回结果为numpy的数组。它其实就是水平(按列顺序)把数组给堆叠起来,与vstack()函数正好相反。举几个简单的例子:

a = np.array([1,2,3])b = np.array([2,3,4])np.hstack([a,b])

输出为:

array([1, 2, 3, 2, 3, 4])

进一步,对于二维数组的情形:

a=[[1],[2],[3]]b=[[1],[2],[3]]np.hstack([a,b])

输出为:

array([[1, 1],       [2, 2],       [3, 3]])

如果进行hstack的数组至少有两维,那么相当于np.concatenate([a,b],axis=1)

a=[[1],[2],[3]]b=[[1],[2],[3]]np.concatenate([a,b],axis=1)

输出跟刚才的结果是一致的

array([[1, 1],       [2, 2],       [3, 3]])

只有一维的情况下,并不等价于np.concatenate([a,b],axis=1),反而等价于np.concatenate([a,b],axis=0)。

5、tf中的stack()

Tensorflow中也提供了stack函数,跟numpy中的stack函数的作用是一样的,我们通过例子来体会:

import tensorflow as tfa = tf.convert_to_tensor([1,2,3])b = tf.convert_to_tensor([2,3,4])stack_ab = tf.stack([a,b])a1 = tf.expand_dims(a,axis=0)b1 = tf.expand_dims(b,axis=0)concat_ab = tf.concat([a1,b1],axis=0)with tf.Session() as sess:    print(sess.run(stack_ab))    print(sess.run(concat_ab))

输出为:

[[1 2 3] [2 3 4]][[1 2 3] [2 3 4]]

到此,相信大家对“numpy中hstack、vstack、stack和concatenate函数怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: numpy中hstack、vstack、stack和concatenate函数怎么使用

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

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

猜你喜欢
  • numpy中hstack、vstack、stack和concatenate函数怎么使用
    本篇内容主要讲解“numpy中hstack、vstack、stack和concatenate函数怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“numpy中hstack、vstack、st...
    99+
    2023-07-05
  • 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
  • numpy中怎么使用squeeze函数
    这篇文章主要介绍了numpy中怎么使用squeeze函数,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。reshape函数:改变数组的维数(注意不是shape大小)>&g...
    99+
    2023-06-14
  • numpy中reshape函数怎么使用
    在NumPy中,reshape函数用于改变数组的形状。使用reshape函数的语法如下:``` pythonnumpy.reshap...
    99+
    2023-09-29
    numpy
  • Numpy中Meshgrid函数怎么使用
    在Numpy中,meshgrid函数用于生成网格点坐标矩阵。它接受一维的数组作为输入,并返回两个二维数组,这两个数组分别对应输入数组...
    99+
    2024-03-01
    Numpy
  • stack和unstack怎么在Python中使用
    这期内容当中小编将会给大家带来有关stack和unstack怎么在Python中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据...
    99+
    2023-06-07
  • Vector和Stack怎么在JAVA 中使用
    这篇文章将为大家详细讲解有关Vector和Stack怎么在JAVA 中使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、Vector&Stack的基本介绍和使用我们先看下JDK种...
    99+
    2023-05-30
    java vector stack
  • numpy中的linspace函数怎么使用
    今天小编给大家分享一下numpy中的linspace函数怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。numpy提供...
    99+
    2023-07-05
  • numpy中的np.random.random()函数怎么使用
    这篇“numpy中的np.random.random()函数怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“numpy...
    99+
    2023-07-05
  • python numpy中linspace函数怎么使用
    本篇内容主要讲解“python numpy中linspace函数怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python numpy中linspace函数怎么使用”...
    99+
    2023-07-05
  • Python常用函数中的NumPy怎么使用
    1. txt文件(1) 单位矩阵即主对角线上的元素均为1,其余元素均为0的正方形矩阵。在NumPy中可以用eye函数创建一个这样的二维数组,我们只需要给定一个参数,用于指定矩阵中1的元素个数。例如,创建3×3的数组:im...
    99+
    2023-05-14
    Python Numpy
  • Numpy中shape函数怎么用
    小编给大家分享一下Numpy中shape函数怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!shape函数的功能是读取矩阵的长度,比如shape[0]就是读取...
    99+
    2023-06-14
  • 怎么使用numpy中的norm()函数求范数
    本文小编为大家详细介绍“怎么使用numpy中的norm()函数求范数”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用numpy中的norm()函数求范数”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。num...
    99+
    2023-07-05
  • numpy的sum函数的axis和keepdim参数怎么使用
    这篇文章主要介绍“numpy的sum函数的axis和keepdim参数怎么使用”,在日常操作中,相信很多人在numpy的sum函数的axis和keepdim参数怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-06-09
  • numpy函数怎么用
    numpy是一个用于进行数值计算和数据分析的Python库,提供了许多强大的函数和工具。常见的numpy函数的介绍:1、np.array(),从列表或元组创建一个数组;2、np.zeros(),创建一个全为0的数组;3、np.ones(),...
    99+
    2023-11-22
    numpy函数
  • numpy中linspace函数的使用
    目录1. 快速了解2. linspace函数语法位置参数 vs 命名参数3. 示例3.3 使用 endpoint 参数3.4 手动指定数据类型4. 总结numpy提供linspace...
    99+
    2023-03-02
    numpy linspace函数 numpy linspace
  • Numpy中的repeat函数使用
    Numpy中repeat函数使用 Numpy是Python强大的数学计算库,和Scipy一起构建起Python科学计算生态。在本节下面我们重点介绍下repeat函数的用法,我们在Py...
    99+
    2022-11-13
    Numpy repeat函数 Numpy repeat函数使用 python repeat函数用法
  • 使用 NumPy 和 Matplotlib 绘制函数图
    Matplotlib是Python的绘图库,它与Numpy一起使用 【引例】 画出y=2*x+5的函数图像 import numpy as np from matplotlib ...
    99+
    2024-04-02
  • 怎么在python中使用np.concatenate()函数拼接numpy数组
    这期内容当中小编将会给大家带来有关怎么在python中使用np.concatenate()函数拼接numpy数组,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python可以做什么Python是一种编程语...
    99+
    2023-06-14
  • Python NumPy中矩阵和通用函数如何使用
    这篇“Python NumPy中矩阵和通用函数如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python&...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作