在numpy.sum中没有清楚地理解python – axis = 0
发布时间:2020-12-16 23:17:34 所属栏目:Python 来源:网络整理
导读:我正在学习 Python,并遇到过numpy.sum.它有一个可选的参数轴.此参数用于获取逐列求和或逐行求和.当axis = 0时,我们意味着仅对列进行求和.例如, a = np.array([[1,2,3],[4,5,6]])np.sum(a,axis = 0) 这段代码产生输出:array([5,7,9]),很好.但如果我这样做:
我正在学习
Python,并遇到过numpy.sum.它有一个可选的参数轴.此参数用于获取逐列求和或逐行求和.当axis = 0时,我们意味着仅对列进行求和.例如,
a = np.array([[1,2,3],[4,5,6]]) np.sum(a,axis = 0) 这段代码产生输出:array([5,7,9]),很好.但如果我这样做: a = np.array([1,3]) np.sum(a,axis = 0) 我得到结果:6,为什么?我不应该得到阵列([1,3])?谢谢. 解决方法
所有这一切都是numpy在第一个(第0个)和唯一的轴上相加.考虑以下:
In [2]: a = np.array([1,3]) In [3]: a.shape Out[3]: (3,) In [4]: len(a.shape) # number of dimensions Out[4]: 1 In [5]: a1 = a.reshape(3,1) In [6]: a2 = a.reshape(1,3) In [7]: a1 Out[7]: array([[1],[2],[3]]) In [8]: a2 Out[8]: array([[1,3]]) In [9]: a1.sum(axis=1) Out[9]: array([1,3]) In [10]: a1.sum(axis=0) Out[10]: array([6]) In [11]: a2.sum(axis=1) Out[11]: array([6]) In [12]: a2.sum(axis=0) Out[12]: array([1,3]) 所以,更明确一点: In [15]: a1.shape Out[15]: (3,1) a1是二维的,“长”轴是第一个. In [16]: a1[:,0] # give me everything in the first axis,and the first part of the second Out[16]: array([1,3]) 现在,沿第一轴求和: In [17]: a1.sum(axis=0) Out[17]: array([6]) 现在,考虑一个不那么微不足道的二维案例: In [20]: b = np.array([[1,6]]) In [21]: b Out[21]: array([[1,6]]) In [22]: b.shape Out[22]: (2,3) 第一个轴是“行”.沿着行汇总: In [23]: b.sum(axis=0) Out[23]: array([5,9]) 第二个轴是“列”.列总结: In [24]: b.sum(axis=1) Out[24]: array([ 6,15]) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |