numpy中hstack、vstack、stack和concatenate函数怎么使用(concatenate,hstack,numpy,开发技术)

时间:2024-05-05 12:37:00 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    numpy%E4%B8%ADhstack%E3%80%81vstack%E3%80%81stack%E5%92%8Cconcatenate%E5%87%BD%E6%95%B0%E6%80%8E%E4%B9%88%E4%BD%BF%E7%94%A8

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

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

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

输出为:

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

输出为:

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

上面的代码会报错:

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

输出为:

进一步:

输出为:

如果换作是二维数组:

输出为:

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

输出为:

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

输出为:

进一步:

输出为:

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

输出为:

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

上面得到的结果为:

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

输出为:

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

输出为:

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

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

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

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

输出为:

本文:numpy中hstack、vstack、stack和concatenate函数怎么使用的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:原生js XMLhttprequest请求onreadystatechange执行两次如何解决下一篇:

5 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18