Python 如何使用约束启动numpy数组

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]

我想创建三个满足以下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]                                                  
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
有什么帮助。