numpy 中 对于shape 以及 axis 的理解

np.shape 怎么看:

从左往右看,shape从左往右顺序就是numpy数组从外往内的顺序。从左往右,从外往内,越来越细。

比如下面的数组t, t.shape = (2,3,2,3), 解释为2(第一个数字2)个三维数组,大小为3*2*3, 每个三维数组有3(第二个数字3)二维数组,数组大小为2*3。

又如, a = np.array([1,2,3]), 则 a.shape = (3,), 声明a时的[], 表示这是一个numpy数组,数组中的元素是 1,2,3,因此这是一个一维数组,数组长度是3.

再如,b = np.array([[5,6], [7,8]]), 则 b.shape = (2,2), 因为去除掉最外面的[], 我们输入的参数是两个长度为2的一维数组,因此b是一个(2,2)的数组。

 

 

 

 

numpy 中 对于shape 以及 axis 的理解

 

 

numpy axis 的概念

numpy axis可以看做是shape的不同维度, axis= 0 指的是第0维, axis=1指的是第一维。对于扩展,拼接,

求和也都是在指定维度上进行操作。以求和为例子。

 

Axis=0指的是最外层的维度(右边图片绿色的两个,或者说是中阿金示意图两对绿色括号), 以这两个为单位进行计算,两个三维数组的相加,对应元素相加。

(可以认为是两个数组叠加在一起,对应位置上的元素求和就是新数组的对应位置的值)

 

numpy 中 对于shape 以及 axis 的理解

 

 

Axis=1指的是第二层的维度(每个绿色的里面有三个橙色的), 但是这三个二维数组应该只在自己所在的数组里面(绿色括号内部)进行运算,因为这里指定的axis是1, 不在考虑axis=0.

方法仍然是把三个数组叠在一起,对应元素求和

 

numpy 中 对于shape 以及 axis 的理解

 

axis= 2,3也可以依次类推,

numpy 中 对于shape 以及 axis 的理解