我在创建可以被视为 Python 中向量数组的笛卡尔积的问题时遇到了问题。我有一个代码,它给出了数字 n 在 r 变量上的所有可能分区,并将其作为 numpy 数组返回。我想做的是能够任意调用该代码,然后生成一组所有可能的数组组合。
举个例子,我可能会调用分区代码和每个连续的调用(对于不同的参数集)
array([[2,0],[1,1],[2,0]])
array([[1,0],[0,1]])
array([[0,0]])
我正在寻找的是能够返回集合
array([[2,0],[1,0],[0,0]])
array([[2,0],[0,1],[0,0]])
array([[1,1],[1,0],[0,0]])
.....
要么作为一个整体数组,要么逐行返回(由于随着被分区数量的增长而出现明显的内存问题)。
以前我使用 itertools.product 解决了这个问题,并在 PyPy 下运行代码。但是,由于项目的其他部分需要 Numpy,我不得不从 PyPy 切换到标准 python,并且我试图通过使用 Numpy 来复制 PyPy 代码的速度。我已经设法让这个工作非常粗略,但是代码花了很多时间在数据类型之间进行更改,以便尝试一起引导一个解决方案,这对于实现来说是不切实际的。
我想知道是否有人能够帮助我提供一些关于我应该如何在 Python 中取得进展的指导。
谢谢