Python 如何使用约束启动numpy数组
我想创建三个满足以下2个约束的三维向量 这个例子就是这样一个可行的解决方案Python 如何使用约束启动numpy数组,python,numpy,Python,Numpy,我想创建三个满足以下2个约束的三维向量 这个例子就是这样一个可行的解决方案 有没有办法用numpy做到这一点?如果没有,你建议什么套餐 从匹配的大小数组中,a和b: In [181]: b = np.linspace(0,10,11); a = np.linspace(0,5,11); z=np.zeros(11) 我可以通过将数组连接为列来构造一组(n,3)数组: In [182]: v1=np.c_[a/2,z,b]
有没有办法用numpy做到这一点?如果没有,你建议什么套餐 从匹配的大小数组中,
a
和b
:
In [181]: b = np.linspace(0,10,11); a = np.linspace(0,5,11); z=np.zeros(11)
我可以通过将数组连接为列来构造一组(n,3)数组:
In [182]: v1=np.c_[a/2,z,b]
In [183]: v2=np.c_[-a,z,z]
In [184]: v3=np.c_[-a/2,z,b]
它们符合约束条件
In [185]: np.allclose(v1+v2, v3)
Out[185]: True
In [189]: np.allclose(np.linalg.norm(v2,axis=1),a)
Out[189]: True
除了
v1
(和v3
)规范是b
的倍数,可能是sympy:或pulp:通过三维向量,我想你指的是(n,3)形数组,不是(n,m,p)形数组,对吧?你能从2个1d数组开始吗,a
和b
?@hpaulj是的,我是指(n,3)。谢谢你clarifying@hpaulj我希望代码在任何可能的向量(可能在一个范围内,例如没有大于50的分量)之间进行选择。因此,仅仅选择规范的大小,即a
和b
是一个步骤。但第二步是确保它们符合求和要求。所以我不知道选择a
和b
有什么帮助。