官方的API读起来很晦涩,网上的教程也绕的云里雾里的,索性自己做实验,看例子更直接,一看就懂
方法“print_sort_dim(a)”不用纠结,就是按照A的大小,从小到大打印他的对应元素的维度:
下面图片,打印的第一列是元素值,后面是它的维度
可以自己分析一下,很直观就能理解,我说太多反而会晕
大概就是:
np.rollaxis(A,0,3) 将同一个元素的下标 0,1, 2 ==》1,2, 0 (将第0个下标,放在第3 -1的位置)
np.rollaxis(A,0,2) 将同一个元素的下标 0,1, 2 ==》1,0, 2(将第0个下标,放在第2 -1的位置)
np.rollaxis(A,0,1) 将同一个元素的下标 0,1, 2 ==》0,1, 2(将第0个下标,放在第1 -1的位置,没变)
np.rollaxis(A,1,3) 将同一个元素的下标 0,1, 2 ==》0,2, 1(将第1个下标,放在第3 -1的位置)
如果还不理解,可以直接测试
下面贴出“print_sort_dim”方法
# 将a的值,从小到大打印维度值
def print_sort_dim(A):
for value in range(0,A.size):
x,y,z = get_dim(A,value)
print(A[x][y][z],":[",x,",",y,",",z,"]")
# 从a中拿到数字为i的几个维度值
def get_dim(A,value):
for x in range(0,2):
for y in range(0,2):
for z in range(0,2):
if A[x][y][z] == value:
return x,y,z