Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向量函数表示中的numpy行序_Numpy - Fatal编程技术网

向量函数表示中的numpy行序

向量函数表示中的numpy行序,numpy,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)的差

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

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)的差异。。。如果时间是最后一个轴,我就不能如此清晰地表达它

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

我认为矩阵向量积将是一个很好的测试,以了解库的设计是否在两个选项中的一个选项中具有偏好。但我没有办法用一种简单的方式来表达这样的操作,无论是在哪种情况下。。。(我尝试了点积和矩阵向量积,但最后我发现自己使用了np.einsum):


向前看,如果
a
具有形状
(100,2,3)
b
(100,3,4),则您将能够使用
a@b
计算具有100个矩阵乘法的形状
(100,2,4)
。所以我想这就是事情似乎倾向的方向。你的问题(你声称“只是口味问题”)有可能得到一个明确的答案吗?我可以在第一个轴上为时间做一个论证(在大多数数据文件中都可以找到,因为您可能更容易将行附加到文件而不是列),但这能回答您的问题吗?你熟悉numpy的广播概念吗?在您的示例中,当p-p0被写为p-p0[:,None]时,p-p0将起作用。当考虑到广播规则时,矩阵乘法也是可能的。类似的问题:Numpy多维数组中索引的顺序-
>>> M.shape
(2, 2, 100)
>>> v.shape
(2, 100)
>>> np.einsum('ij...,j...', M, v)