在Python中创建向量数组的笛卡尔积时,我遇到了一个问题。我有一个代码,它给出了n除以r变量的所有可能的分区,并以numpy数组的形式返回它。我想做的是能够将该代码调用任意次数,然后生成一组所有可能的数组组合。在
所以举个例子,我可以调用分区代码和每个连续的调用(对于一个可变的参数集)
array([[2,0],[1,1],[2,0]])
array([[1,0],[0,1]])
array([[0,0]])
我要找的是能把这套还给我
^{pr2}$或者作为一个整体数组,或者逐行返回它(因为随着被分区的数字的大小的增长,内存问题很明显)。在
以前我用itertools.product,并在PyPy下运行代码。但是,由于项目的其他部分需要Numpy,我不得不从PyPy切换到标准python,并且我试图通过使用Numpy来复制PyPy代码的速度。我已经设法使这个工作非常粗略,但代码花费了太多时间在数据类型之间进行更改,以便尝试将一个解决方案引导到一起,因此它对于实现来说是不切实际的。在
我想知道是否有人能帮我提供一些指导,告诉我如何在Python中使用它。在
谢谢
这应该让您开始:
最后一个维度必须相同。在
显示结果:
^{pr2}$这是一个三维数组,在最后两个轴上有唯一的组合。似乎速度相当快,1M独特的组合大约需要1/6秒。在
相关问题 更多 >
编程相关推荐