在纽比穿越二维线?

2024-04-23 19:21:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在Numpy中做linear combination来获得两点之间的向量遍历,但是我的方法非常可怕。在

import numpy as np
a=np.array([1,2])
b=np.array([3,4])
t=np.linspace(0,1,4)
c=(np.asarray([t*a[0],t*a[1]])+np.asarray([(1-t)*b[0],(1-t)*b[1]])).T
print c

输出正在

^{pr2}$

有没有更好的方法(当然是高效的)?在


Tags: 方法importnumpyasnparray向量linear
1条回答
网友
1楼 · 发布于 2024-04-23 19:21:06

如果在t数组的末尾添加一个一维大小,广播将处理细节:

>>> a=np.array([1,2])
>>> b=np.array([3,4])
>>> t=np.linspace(0,1,4)
>>> t[..., None] * a  + (1 - t[..., None]) * b
array([[ 3.        ,  4.        ],
       [ 2.33333333,  3.33333333],
       [ 1.66666667,  2.66666667],
       [ 1.        ,  2.        ]])

相关问题 更多 >