向量函数表示中的numpy行顺序

时间:2015-01-30 06:20:40

标签: numpy

假设我需要表示矢量值信号。让我们说一个在平面上旋转的点的坐标:

t = 0.05 * np.arange(100)
x = np.cos(t)
y = np.sin(t)

现在我已经以这种方式定义了这个位置:

p = np.array([x,y])

所以时间是我的多向量的最后一个轴。这在许多方面都很好(实际上我处理的是3D矢量和3x3矩阵)。

然而,在许多情况下,我觉得在第一轴上有时间会更好。例如,如果我有一个恒定的位置

p0 = np.array([1.0,1.0])

为差异写出(p - p0)会很好...如果时间是最后一个轴,我就无法如此干净地表达出来!

我知道这只是一个品味问题,但在这种情况下,数字社区中是否存在首选或常规选择?

我认为Matrix-Vector产品将是一个很好的测试,以了解库是否设计为在两个选项之一中的首选项。但我发现在这两种情况下都没有办法以简单的方式表达这样的操作......(我已经尝试过dot product和matrix_vector_product,但最后我发现自己使用的是np.einsum):

>>> M.shape
(2, 2, 100)
>>> v.shape
(2, 100)
>>> np.einsum('ij...,j...', M, v)

0 个答案:

没有答案