用颤音动画线性转换

您颤抖中的一个有用的工具,该帖子对用颤抖的线性转换动画转换的帖子首先出现在数据科学上。

来源:走向数据科学

科学家不可避免地意味着要在多个抽象上工作,这是代码和数学的最重要的抽象。这很棒,因为这使您能够快速获得惊人的结果。但是有时候,暂停一秒钟,然后思考整洁界面背后发生的事情。这种思考过程通常得到可视化的帮助。在本文中,我想介绍动画的Quiver图如何帮助思考线性转换,这些变换通常在机器学习算法和相关接口的模糊性中可靠地劳作。最后,我们将能够通过箭量图可视化诸如单数值分解之类的概念。

绘制静态箭护图

Matplotlib Python软件包中的颤抖图允许我们绘制箭头(在我们的情况下代表向量)。让我们首先看一下静态颤抖图:

matplotlib
作者的图像

我们可以通过查看两个基本向量的目标位置来直接从图像中得出转换矩阵。第一个基本向量从位置(1,0)开始,并降落在(1,1)上,而第二个基部向量从(0,1)到(1,1,1)传播。因此,描述此转换的矩阵是:

在视觉上,这对应于逆时针旋转的45度(或\(\ pi/4 \)中的逆时针旋转)和稍微拉伸(通过因子\(\ sqrt {2} \))。

使用此信息,让我们看一下如何用颤抖来实现的(请注意,我省略了一些样板代码,例如轴的缩放):

您可以看到,我们定义了每个向量的一个颤抖图。这仅是出于说明目的。如果我们查看Quiver函数的签名 - Quiver([X,Y],U,V,[C], /,** Kwargs) - 我们可以观察到U和V将Numpy阵列作为输入,这比提供标量值更好。让我们重构此功能以仅使用一个箭量调用。此外,让我们添加一个向量v =(1.5,-0.5)以查看在其上应用的转换。

Quiver