Numpy

数组的轴

这是一个非常重要的概念,也是 NumPy 数组中最不好理解的一个概念。它经常出现在 np.sum()、np.max() 这样关键的聚合函数中。我们用这样一个问题引出,同一个函数如何根据轴的不同来获得不同的计算结果呢?比如现在有一个 (4,3) 的矩阵,存放着 4 名同学关于 3 款游戏的评分数据。

>>>interest_score = np.random.randint(10, size=(4, 3))
>>>interest_score
array([[4, 7, 5],
       [4, 2, 5],
       [7, 2, 4],
       [1, 2, 4]])

第一个需求是,计算每一款游戏的评分总和。这个问题如何解决呢,我们一起分析一下。数组的轴即数组的维度,它是从 0 开始的。对于我们这个二维数组来说,有两个轴,分别是代表行的 0 轴与代表列的 1 轴。如下图所示。

Numpy

 

我们的问题是要计算每一款游戏的评分总和,也就是沿着 0 轴的方向进行求和。所以,我们只需要在求和函数中指定沿着 0 轴的方向求和即可。

>>> np.sum(interest_score, axis=0)
array([16, 13, 18])

 同理1轴也如此,只需将参数axis = 0 修改为 1 即可

二维数组还是比较好理解的,那多维数据该怎么办呢?你有没有发现,其实当 axis=i 时,就是按照第 i 个轴的方向进行计算的,或者可以理解为第 i 个轴的数据将会被折叠或聚合到一起。

 

上一篇:numpy.argsort


下一篇:BERT书籍阅读笔记(二)PyTorch编程基础(1)