python 中的axis理解

axis理解

  1. 所有关于axis的操作,先推测最后结果的shape是什么,然后再推出结果就不难了。结果的最后形状都是axis指定的位置才发生变化,没有被指定的位置不发生变化
  2. 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]

  1. 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,机器无法确定,所以会报错。

你可能感兴趣的:(机器学习,python,numpy,机器学习)