python 中的axis理解

it2023-05-26  75

axis理解

所有关于axis的操作,先推测最后结果的shape是什么,然后再推出结果就不难了。结果的最后形状都是axis指定的位置才发生变化,没有被指定的位置不发生变化np.max,np.mean,np.min等等这些操作,其实都是有降维的含义在里面,tensorflow里面的reduce_max,reduce_min,reduce_mean操作中的reduce含义其实就是在提醒使用者,这些操作其实是在降维。(axis指定的轴的维度被降为1) # shape[2,2] a = np.array([[1, 2], [3, 4]]) # 结果[3,4] print(np.max(a,axis=0)) #结果为[2,4] print(np.max(a,axis=1))

a的shape为[2,2],axis=1的时候,1轴被降维,结果[2,1],所以答案为2,4 axis=0时 0轴被降维,结果[1,2] 答案为[3,4]

pd.concate 等操作也是 axis指定的维度做变换,未被指定的维度将不变 # shape[2,2] a = np.array([[1, 2], [3, 4]]) # shape[2,3] b = np.array([[5,6,4],[7,8,6]]) # [[1 2 5 6 4] # [3 4 7 8 6]] # shape[2,5] print(np.concatenate((a, b), axis=1)) # 会报错因为其他未指定的轴的形状必须是相等的 print(np.concatenate((a, b), axis=0))

a的形状是[2,2] b的形状是[2,3],axis=1,说明0轴不变还是为2,1轴变化为2+3=5,所以结果集为[2,5] 如果concate设置的是axis=0,说明1轴不变,但是a的1轴是2,b的1轴是3,机器无法确定,所以会报错。

最新回复(0)