numpy数组高维拼接: concatenate

本文介绍了如何使用numpy进行图像矩阵数据处理,包括二维数组拼接、升维操作,以及在实际场景中如图像融合的运用。通过实例展示了如何使用concatenate函数将数组沿不同维度拼接,并演示了升维处理以解决多维度数组操作的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做图像融合,牵扯到图像矩阵数据的处理,其中包括升维,拼接,分离取出的操作,于是参照博客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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值