标签:相加 元素 括号 理解 np array Axis axis
Axis理解
之前的课程中,为了方便大家理解,我们说axis=0
代表的是行,axis=1
代表的是列。但其实不是这么简单理解的。这里我们专门用一节来解释一下这个axis
轴的概念。
简单来说, 最外面的括号代表着 axis=0,依次往里的括号对应的 axis 的计数就依次加 1。什么意思呢?下面再来解释一下。
最外面的括号就是axis=0
,里面两个子括号axis=1
。
操作方式:如果指定轴进行相关的操作,那么他会使用轴下的每个直接子元素的第0个,第1个,第2个...分别进行相关的操作。
现在我们用刚刚理解的方式来做几个操作。比如现在有一个二维的数组:
x = np.array([[0,1],[2,3]])
-
求
x
数组在axis=0
和axis=1
两种情况下的和:>>> x.sum(axis=0) array([2, 4])
为什么得到的是[2,4]呢,原因是我们按照
axis=0
的方式进行相加,那么就会把最外面轴下的所有直接子元素中的第0个位置进行相加,第1个位置进行相加...依此类推,得到的就是0+2
以及2+3
,然后进行相加,得到的结果就是[2,4]
。>>> x.sum(axis=1) array([1, 5])
因为我们按照
axis=1
的方式进行相加,那么就会把轴为1里面的元素拿出来进行求和,得到的就是0,1
,进行相加为1
,以及2,3
进行相加为5
,所以最终结果就是[1,5]
了。 -
用
np.max
求axis=0
和axis=1
两种情况下的最大值:
>>> np.random.seed(100)
>>> x = np.random.randint(0,10,size=(3,5))
>>> x.max(axis=0)
array([8, 8, 3, 7, 8])
因为我们是按照axis=0
进行求最大值,那么就会在最外面轴里面找直接子元素,然后将每个子元素的第0个值放在一起求最大值,将第1个值放在一起求最大值,以此类推。而如果axis=1
,那么就是拿到每个直接子元素,然后求每个子元素中的最大值:
>>> x.max(axis=1)
array([8, 5, 8])
-
用
np.delete
在axis=0
和axis=1
两种情况下删除元素:>>> np.delete(x,0,axis=0) array([[2, 3]])
np.delete
是个例外。我们按照axis=0
的方式进行删除,那么他会首先找到最外面的括号下的直接子元素中的第0个,然后删掉,剩下最后一行的数据。>>> np.delete(x,0,axis=1) array([[1], [3]])
同理,如果我们按照
axis=1
进行删除,那么会把第一列的数据删掉。
三维以上数组:
按照之前的理论,如果以上数组按照axis=0
的方式进行相加,得到的结果如下:
如果是按照axis=1
的方式进行相加,得到的结果如下:
总结:
1、最外面的括号代表着 axis=0,依次往里的括号对应的 axis 的计数就依次加 1
2、操作方式:如果指定轴进行相关的操作,那么他会使用轴下的每个直接子元素的第0个,第1个,第2个...分别进行相关的操作。
3、 np.delete,是直接删除指定轴下的第几个直接子元素。
标签:相加,元素,括号,理解,np,array,Axis,axis 来源: https://www.cnblogs.com/lipinbigdata/p/15647657.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。