NumPy 中的数组计算:进阶技巧

作者: Datartisan数据工匠 | 来源:发表于2016-11-18 10:24 被阅读408次

本节我们将向大家介绍 Numpy 数组计算的一些进阶技巧。

数组相加

在之前的课程中我们曾经谈到过 Numpy 数组的加法,对于具有相同维度与长度的两个数组,其相加结果为对应位置上元素之和构造的矩阵:

上面的例子中,得到的结果相当于数组 a 与一个实数相加:

接下来,我们构建一个多维数组,来看一下不同维度数组相加的情况:

可以发现,在这种情况下,我们得到的结果相当于在数组 M 的每一行都加上了数组 a。

更神奇的是,Numpy 数组在相加时还会自适应地进行扩展,例如我们将一个3x1数组与一个1x3数组相加:

如上所示,我们得到了一个3x3的数组。

上述神奇的数组加法要求两个相加的数组满足一定的条件,即下面两种情况之一:

  • 一个多维数组与一个一维数组相加,一维数组对应的行/列数与多维数组的行/列数一致
  • 一个行向量数组与一个列向量数组相加

在第一种情况下,若一维数组对应的行/列数与多维数组的行/列数不一致,则无法相加:

对数组 a 进行转置,转置后 a 的行数与数组 M 一致:

Numpy 数组的相加还支持更为复杂的模式,例如函数 logaddexp 可以帮助我们得到 log(exp(x1) + exp(x2)) 的结果:

未完待续:课程内容较多,请复制链接通过电脑学习,获得最佳学习效果。 http://datacademy.io/lesson/79

相关文章

网友评论

    本文标题:NumPy 中的数组计算:进阶技巧

    本文链接:https://www.haomeiwen.com/subject/mtbjpttx.html