神秘轴0和1方向

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (13)

在关于numpy的'Python for data analysis'之后,遇到这样的例子

#+BEGIN_SRC ipython :session my :export both :results output
arr = np.random.randn(5, 4)
print(arr)
#+END_SRC
#+RESULTS:
: [[-1.20142965 -0.65152972  2.04732169 -2.27351496]
:  [ 1.0054648  -1.75728785  0.00923428 -0.65533187]
:  [-2.1108598  -0.92347845  0.46443361 -0.48219059]
:  [ 0.77617699  0.40242098  1.09411003 -0.6431827 ]
:  [-0.59485821  1.22890193 -0.7498006   0.93518233]]

它说明了这一点

像mean和sum这样的函数采用一个可选的axis参数来计算给定轴上的统计量,从而产生一个维数较少的数组:

#+BEGIN_SRC ipython :session my :export both :results output
print(arr.mean(axis=1))
print(arr.sum(axis=0))
#+END_SRC
#+RESULTS:
: [-0.51978816 -0.34948016 -0.76302381  0.40738132  0.20485636]
: [-2.12550586 -1.70097313  2.86529902 -3.11903779]

然后这本书解释了这一点

这里,arr.mean(1)表示“计算列中的平均值”,其中arr.sum(0)表示“计算行总和”。

我认为麦金尼先生做了一个完美的工作,以相反的方式解释。

arr.sum(0)表示计算跨列的行 arr.mean(1)表示在列或垂直方向上表示向下行。

我理解有什么问题吗?

提问于
用户回答回答于

沿着某个轴进行减少沿着它的尺寸。所以:

import numpy as np



arr = np.array([[1,2,3] , 
                [4,5,6]])


print(arr.sum(axis = 0))

print(arr.sum(axis = 1))

第一个减少沿轴= 0什么是外部或“垂直”如你所说并返回[1 + 4,2 + 5,3 + 6]

第二个沿着每一行进行[1 + 2 + 3,4 + 5 + 6]

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励