.reshape
arr=np.arange(16).reshape((2,2,4))
arr=
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7]],
[[ 8, 9, 10, 11],
[12, 13, 14, 15]]])
以此数组为模板讨论
reshape((2,2,4))
意思是两组2*4的数组:
第0组
[[ 0, 1, 2, 3],
[ 4, 5, 6, 7]]
和
第1组
[[ 8, 9, 10, 11],
[12, 13, 14, 15]]
arr[0,1,3] #结果就是7
.transpose
把元素下标换
arr.transpose(2,1,0)
array([[[ 0, 8],
[ 4, 12]],
[[ 1, 9],
[ 5, 13]],
[[ 2, 10],
[ 6, 14]],
[[ 3, 11],
[ 7, 15]]])
就是对每个元素都做坐标的替换。比如7本来位于arr[0,1,3] ,转置为arr[3,1,0].第四组第二行第一列。
从整体看, 就是(2,2,4)维度变成(4,2,2)
以前的第一组的,会放到新的0,1,2,3组的第一列
.swapaxes(ax1,ax2)
将数组n个维度中两个维度进行调换,不改变原数组
arr.swapaxes(0,2)=arr.swapaxes(2,0)
跟转置同
arr.swapaxes(0,2)
Out[25]:
array([[[ 0, 8],
[ 4, 12]],
[[ 1, 9],
[ 5, 13]],
[[ 2, 10],
[ 6, 14]],
.flatten()
对数组进行降维,返回折叠后的一维数组,原数组不变
arr.flatten()
Out[26]: array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])