Python程序教程

您现在的位置是:首页 >  Python

当前栏目

python一维数组转置_python矩阵转置[通俗易懂]

python,转置,一维,数组,矩阵,通俗易懂
2025-03-20 08:48:58 时间

大家好,又见面了,我是你们的朋友全栈君。

python中的矩阵转置

首先,数据应该是np.asarray型,

然后,使用numpy.transpose来操作。

transpose方法只能处理高维数组(>1),如果处理一维数组会报错;

对于二维数组:

data1 = np.arange(4).reshape((2,2))

print(data1)

>>[[0 1]

[2 3]]

data1 = np.transpose(data1)

print(data1)

>>[[0 2]

[1 3]]

对于三维数组:(3,2,2)的数组对应转置为(2,2,3)

data1 = np.arange(12).reshape((3,2,2))

print(data1)

>>[[[ 0 1]

[ 2 3]]

[[ 4 5]

[ 6 7]]

[[ 8 9]

[10 11]]]

data1 = np.transpose(data1)

print(data1)

>>[[[ 0 4 8]

[ 2 6 10]]

[[ 1 5 9]

[ 3 7 11]]]

对于四维数组:(2,3,2,2)的数组对于转置为(2,2,3,2)

data1 = np.arange(24).reshape((2,3,2,2))

print(data1)

>>[[[[ 0 1]

[ 2 3]]

[[ 4 5]

[ 6 7]]

[[ 8 9]

[10 11]]]

[[[12 13]

[14 15]]

[[16 17]

[18 19]]

[[20 21]

[22 23]]]]

data1 = np.transpose(data1)

print(data1)

>>[[[[ 0 12]

[ 4 16]

[ 8 20]]

[[ 2 14]

[ 6 18]

[10 22]]]

[[[ 1 13]

[ 5 17]

[ 9 21]]

[[ 3 15]

[ 7 19]

[11 23]]]]

所以默认的transpose()是将数组的形状和对应的元素全部倒置。

对于有参数的transpose:对于三维数组,原型数组的参数应该是(0,1,2),对应的是外行,子行,子列,如果变成(1,0,2)就是将外行变成子行,子行变成外行。对于元素索引也发生同样改变,比如原来的元素3的索引是(0,1,1),转换后就是(1,0,1)

data1 = np.arange(12).reshape((2,3,2))

print(data1)

data2 = data1.transpose(1, 0, 2)

print(data2)

>>[[[ 0 1]

[ 2 3]

[ 4 5]]

[[ 6 7]

[ 8 9]

[10 11]]]

>>[[[ 0 1]

[ 6 7]]

[[ 2 3]

[ 8 9]]

[[ 4 5]

[10 11]]]

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137144.html原文链接:https://javaforall.cn