这个问题已经在这里有了答案: > Numpy: cartesian product of x and y array points into single array of 2D points 12个
说我有两个向量:
A=linspace(-2,0,6)
B=linspace(0,2,6)
并且我想创建一个二维矩阵(大小为2 x 36),将A中的所有值与B中的所有值进行匹配,因此它类似于:
[[-2 , 0]
[-2 , 0.4]
[-2 , 0.8]
[-2 , 1.2]
[-2 , 1.6]
[-2 , 2.0]
[-1.6 , 0]
[-1.6 , 0.4]
[-1.6 , 0.8]
....
....
[0 , 2.0]]
我想我需要某种for循环,但是我不确定如何做到这一点…
解决方法:
>>> a = np.linspace(-2, 0, 6)
>>> b = np.linspace(0, 2, 6)
>>>
>>> out = np.empty((len(a), len(b), 2))
>>> out[..., 0] = a[:, None]
>>> out[..., 1] = b[None, :]
>>> out = out.reshape(-1, 2)
>>> out
array([[-2. , 0. ],
[-2. , 0.4],
[-2. , 0.8],
[-2. , 1.2],
[-2. , 1.6],
[-2. , 2. ],
[-1.6, 0. ],
[-1.6, 0.4],
[-1.6, 0.8],
[-1.6, 1.2],
[-1.6, 1.6],
[-1.6, 2. ],
[-1.2, 0. ],
[-1.2, 0.4],
[-1.2, 0.8],
[-1.2, 1.2],
[-1.2, 1.6],
[-1.2, 2. ],
[-0.8, 0. ],
[-0.8, 0.4],
[-0.8, 0.8],
[-0.8, 1.2],
[-0.8, 1.6],
[-0.8, 2. ],
[-0.4, 0. ],
[-0.4, 0.4],
[-0.4, 0.8],
[-0.4, 1.2],
[-0.4, 1.6],
[-0.4, 2. ],
[ 0. , 0. ],
[ 0. , 0.4],
[ 0. , 0.8],
[ 0. , 1.2],
[ 0. , 1.6],
[ 0. , 2. ]])
标签:loops,vector,python,numpy 来源: https://codeday.me/bug/20191122/2056773.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。