2d图像 3d python 转 python二维转三维

您所在的位置:网站首页 reshape二维变三维 2d图像 3d python 转 python二维转三维

2d图像 3d python 转 python二维转三维

2023-06-28 14:07| 来源: 网络整理| 查看: 265

reshape(shape) : 不改变数组元素,返回一个shape形状的数组,原数组不变。是对每行元素进行处理 resize(shape) : 与.reshape()功能一致,但修改原数组

.swapaxes(ax1,ax2) : 将数组n个维度中两个维度进行调换,不改变原数组

.flatten() : 对数组进行降维,返回折叠后的一维数组,原数组不变

 

将多个二维数组合并为一个三维数组

方法一: 对于两个(或者多个)同一维度的矩阵,直接利用np.array()重新构造一个array,这样可以变相起到扩展维数的作用。例如:

方法二: 但是,如果两个array,使用方法一时会出现如下结果:

可以看到:输出的维数不对,以上方法就不适用了。

那么,我们就需要利用np.append和array.reshape()函数对数组进行拼接之后重组,具体实现如下:

现在来看一下用reshape将二维数据升为三维后的数据分布情况:

b的元素:

2d图像 3d python 转 python二维转三维_一维数组

b1的元素:

2d图像 3d python 转 python二维转三维_数组元素_02

2d图像 3d python 转 python二维转三维_数组元素_03

可以看到,原来6*6的矩阵被分为了2个3*6的矩阵。每一行的数据分布并没有改变,只是将前3行划为一个维度,然后将后三行划为另一个维度。

方法三: 相比于前两种方法,这种方法可谓“曲线救国”之典范,具体思路是:先转化成list,拼接后再转化回去。 这是因为list中的append()函数可以在添加函数的时候不改变原来list的维度。虽然没有对这种方法进行一个速度测试,但直觉来看时间复杂度挺高的,建议慎用。

这里注意: 两种类型的相互转换函数:

array转list:a = a.tolist() list转array:a =np.array(a)

  reshape(shape) : 不改变数组元素,返回一个shape形状的数组,原数组不变。是对每行元素进行处理

resize(shape) : 与.reshape()功能一致,但修改原数组



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3