栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

numpy数组高维拼接: concatenate

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

numpy数组高维拼接: concatenate

最近在做图像融合,牵扯到图像矩阵数据的处理,其中包括升维,拼接,分离取出的操作,于是参照博客numpy数组拼接方法介绍(concatenate),把自己的测试过程分享记录一下。

已有维的拼接
import numpy as np
a=np.array([[1,2,3],[4,5,6]])
print(a.shape)		# (2, 3)
print("a:",a)

输出结果:

a: [[1 2 3]
 [4 5 6]]

先定义一个b,与a形状相同,然后尝试拼接

b=np.array([[11,21,31],[7,8,9]])
c = np.concatenate((a,b),axis=0)
d = np.concatenate((a,b),axis=1)
print(c.shape,d.shape)	# (4, 3) (2, 6)
print("c: ",c)
print("d: ",d)

输出结果:

c:  [[ 1  2  3]
 [ 4  5  6]
 [11 21 31]
 [ 7  8  9]]
d:  [[ 1  2  3 11 21 31]
 [ 4  5  6  7  8  9]]
升维后拼接

这时候,如果直接使用e = np.concatenate((a,b),axis=2)会报错,提示没有第3维。于是,先升维。

a = np.expand_dims(a,axis=2)
print(a.shape)		# (2, 3, 1)
print(a)

输出结果:

a:  [[[1]
  [2]
  [3]]

 [[4]
  [5]
  [6]]]

也是,先对b升维,与a形状相同,然后尝试拼接。

b = np.expand_dims(b,axis=2)
e = np.concatenate((a,b),axis=2)
print(e.shape)		# (2, 3, 2)
print("e:",e)

输出结果:

e: [[[ 1 11]
  [ 2 21]
  [ 3 31]]

 [[ 4  7]
  [ 5  8]
  [ 6  9]]]
检验拼接是否正确

接下来,检验一下,是否可以正常取用:

a = e[:,:,0]
b = e[:,:,1]
print("a:",a)
print("b:",b)

输出结果:

a: [[1 2 3]
 [4 5 6]]
b: [[11 21 31]
 [ 7  8  9]]
应用场景
VIS_batch = source_imgs[start:end, :, :, 0]	# 获取数据
IR_batch = source_imgs[start:end, :, :, 1]

其中,start,end是当前批的范围,end-start=batchsize

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/355733.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号