# 关于rollaxis与swapaxes的使用
import numpy as np
a = np.arange(8).reshape(2, 2, 2)
print(a)
print(a.ndim) # 维度
# numpy.rollaxis 函数向后滚动特定的轴到一个特定位置
# numpy.rollaxis(arr, axis, start)
# arr:数组
# axis:要向后滚动的轴,其它轴的相对位置不会改变
# start:默认为零,表示完整的滚动。会滚动到特定位置。
"""
原数组下标
0(000) 1(001)
2(010) 3(011)
4(100) 5(101)
6(110) 7(111)
"""
print(np.rollaxis(a, 2))
"""
如:101 -> 110
np.rollaxis(a, 2)
0(000) 2(001)
4(010) 6(011)
1(100) 3(101)
5(110) 7(111)
"""
print('\n')
print(np.rollaxis(a, 2, 1))
"""
如:101 -> 110
np.rollaxis(a, 2, 1)
0(000) 2(001)
1(010) 3(011)
4(100) 6(101)
5(110) 7(111)
"""
print('\n')
# numpy.swapaxes 函数用于交换数组的两个轴
# numpy.swapaxes(arr, axis1, axis2)
# arr:输入的数组
# axis1:对应第一个轴的整数
# axis2:对应第二个轴的整数
print(np.swapaxes(a, 2, 0))
"""
如:001 -> 100
np.swapaxes(a, 2, 0)
0(000) 4(001)
2(010) 6(011)
1(100) 5(101)
3(110) 7(111)
"""
打印结果
[[[0 1]
[2 3]]
[[4 5]
[6 7]]]
3
[[[0 2]
[4 6]]
[[1 3]
[5 7]]]
[[[0 2]
[1 3]]
[[4 6]
[5 7]]]
[[[0 4]
[2 6]]
[[1 5]
[3 7]]]