gpt4 book ai didi

python - 在 Python 中创建一组向量的笛卡尔积?

转载 作者:太空宇宙 更新时间:2023-11-03 17:42:17 25 4
gpt4 key购买 nike

给定 3 维中的标准基向量 (e_1,e_2,e_3) 并让 (e_1,e_2,e_3) 的元素限制为 (0,1,2,3,4) 有没有一种简单的Python方式来创建这个向量空间中所有向量的笛卡尔积?

例如,给定 [1,0,0]、[0,1,0] 和 [0,0,1],我想获得所有线性组合的列表(其中 a_i 受到限制)到 [0,0,0] 和 [4,4,4] 之间的这些向量的 0 和 4 之间的自然数。

我可以自己编写这个程序,但在解决这个问题之前,我想我会问是否有一种简单的Pythonic方法可以做到这一点,也许是在numpy或类似的东西中。

最佳答案

对于自然数空间的特定情况,您需要np.indices:

>>> np.indices((4, 4)).reshape(2,-1).T
array([[0, 0],
[0, 1],
[0, 2],
[0, 3],
[1, 0],
[1, 1],
[1, 2],
[1, 3],
[2, 0],
[2, 1],
[2, 2],
[2, 3],
[3, 0],
[3, 1],
[3, 2],
[3, 3]])

(numpy 实际上在网格中输出这些,但您想要一个一维点列表,因此 .reshape)

否则,您描述的不是幂集而是笛卡尔积

itertools.product(range(4), repeat=3)

关于python - 在 Python 中创建一组向量的笛卡尔积?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30334739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com