reshape(shape ) :返回形状的数组,但不更改数组元素,也不更改原始数组。 就是处理每行的元素
与resize(shape ): reshape )功能匹配,但修改原始数组in(1) :a=NP.arange(20 )
#原始数组不变
in [2] : a.reshape ([ 4,5 ] ) )。
Out[2]:
array ([ 0,1,2,3,4 ],
[ 5,6,7,8,9 ],
[ 10,11,12,13,14 ],
[ 15、16、17、18、19 ] )
In [3]: a
Out[3]:
array ([ 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,
17、18、19 ) )
#修改原始数组
(in [4] : a.resize ([ 4,5 ] ) ) ) ) ) ) ) ) )
In [5]: a
Out[5]:
array ([ 0,1,2,3,4 ],
[ 5,6,7,8,9 ],
[ 10,11,12,13,14 ],
[ 15、16、17、18、19 ] )
. swapaxes(ax1,ax2 ) :交换数组n个维中的两个维,不更改原始数组in [6] : a.swap axes (1,0 )
Out[6]:
array ([ 0,5,10,15 ],
[ 1,6,11,16 ],
[ 2,7,12,17 ],
[ 3,8,13,18 ],
[ 4,9,14,19 ] )
. flatten ()数组降维并返回折叠的一维数组。 原始数组保持不变In [7]: a.flatten ) ) )。
Out[7]:
array ([ 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,
17、18、19 ) )
将多个二维数组合并为一个三维数组
方法1 :
通过对两个(或多个)相同维度的矩阵,直接用np.array )重构一个array,可以起到扩展维度的作用。 例如,import numpy as np
a=NP.array ([ 1,2,3 ],[ 4,5,6 ] ) )
b=NP.array ([ 2,2,3 ],[ 4,5,6 ] ) )
c=NP.array ([ 3,2,3 ],[ 4,5,6 ] ) )
打印(矩阵a:(n ),a ) ) ) ) )。
print ()维度)、a.shape ) )。
com=NP.Array([a,b,c] )。
print (连接矩阵:n (,com ) ) ) ) ) ) ) )。
print (维,com.shape ) )。
输出结果如下。
矩阵a :
[1(2)3]
[4(5) ]
维数: (2,3 ) ) ) ) )。
合并矩阵:
[[1(2)3]
[4(5) ]
[2(2)3]
[4(5) ]
[3(2)3]
[4(5) ]
维数: (3,2,3 ) ) ) ) ) ) ) ) )。
方法2 :
但是,对于两个array,使用方法暂时如下。 import numpy as np
aa=NP.array ([ 1,2,3 ]、[ 4,5,6 ]、[ 2,2,3,5,6 ]、[ 3,2,3 ]、[ 4,5,6 ] ) ) 4,5,5
a=NP.array ([ 4,2,3 ],[ 4,5,6 ] ) )
com=NP.Array([aa,a] ) )。
print (连接矩阵:n (,com ) ) ) ) ) ) ) )。
print (维,com.shape ) )。
输出结果:
合并矩阵:
[ array ] [ [ 1,2,3 ],
[ 4,5,6 ],
[ 2,2,3 ],
[ 4,5,6 ],
[ 3,2,3 ],
[ 4,5,6 ] )
array ([ 4,2,3 ],
[ 4,5,6 ] ]
维数: (2,)。
如果输出的维度错误,则表明上述方法不适用。
在中,必须使用np.append和array.reshape ()函数连接数组,然后重新组织数组。 具体情况如下: import numpy as np
aa=NP.array ([ 1,2,3 ]、[ 4,5,6 ]、[ 2,2,3,5,6 ]、[ 3,2,3 ]、[ 4,5,6 ] ) ) 4,5,5
a=NP.array ([ 4,2,3 ],[ 4,5,6 ] ) )
DTA=NP.append(aa,a ) #首先连接成一个行向量
是打印(数据)
dim=aa.shape#获取原始矩阵的维数
print (原始矩阵的维度)、dim ) )。
用原始矩阵的维数重构data1=data.reshape(dim[0]1,dim[1],dim[2] )
print (连接矩阵:n (,data1 ) ) ) ) ) ) )。
print (维,data1.shape ) )。
看看用reshape将二维数据提高到三维后的数据分布。 import numpy as np
b=NP.arange(36 ).reshape ),6 ) )
B1=b.reshape (2,3,6 ) )。
b元素:
b1元素:
可以看到6*6的矩阵被分成了两个3*6的矩阵。 虽然每行的数据分布不变,但是将前三行拆分为一个维,将后三行拆分为另一个维。 B1.reshape (6,6 ) ) )。
使用此命令可以恢复数据,就像恢复b的一样。 B1.reshape (3,12 ) )。
使用reshape (3,12 ),您必须首先将数据扩展到一维,然后将一维数据重新配置为3*12
方法3 :
与前两种方法相比,该方法可以说是“曲线救国”的典范。 具体的想法是,首先转换为list,拼接后再转换回来。
这是因为list的append ()函数在添加函数时不会更改原始list的维。 虽然这种方法没有进行任何速度测试,但直观上看,时间很复杂,建议谨慎使用。 aa=NP.array ([ 1,2,3 ]、[ 4,5,6 ]、[ 2,2,3,5,6 ]、[ 3,2,3 ]、[ 4,5,6 ] ) ) 4,5,5
a=NP.array ([ 4,2,3 ],[ 4,5,6 ] ) )
将阵列转换为列表
aa=aa.tolist(aa ) )。
a=a.list(a ) )。
注意与a.append(a ) #方法2的np.append ) )的使用方法的差异
com=NP.Array(aa ) )。
打印(com.shape )。
输出结果:
合并矩阵:
[[1(2)3]
[4(5) ]
[2(2)3]
[4(5) ]
[3(2)3]
[4(5) ]
[4(2)3]
[ 4,5,6 ] ]
维数: (4,2,3 ) ) ) ) ) ) ) )。
在此注意:
两类互转换函数:
array转到list:a=a.to list ()
list转发Array:a=NP.Array(a ) ) ) ) ) ) ) )。
以上Python reshape的使用方法和多个二维数组合并为三维数组的实例是编辑们共有的全部内容。 希望您能参考。 另外,希望大家多多支持聚米学院。