gpt4 book ai didi

python - 生成四元对

转载 作者:行者123 更新时间:2023-12-05 03:23:05 25 4
gpt4 key购买 nike

我在 Python 中获取以下四元组时遇到问题。令 n 为整数,例如 n=2,则算法应执行以下操作:

输入:两个 2x1 整数数组,arr1 = [0,1]arr2 = [3,4]

输出:2x4 数组

quads = [[0,0,3,3],
[0,0,3,4],
[0,0,4,3],
[0,0,4,4],
[0,1,3,3],
[0,1,3,4],
[0,1,4,3],
[0,1,4,4],
[1,0,3,3],
...
]

依此类推,再次写入第二行,但在第一列中使用 1 而不是 0。

我的直觉是,这可以通过使用 tilerepeat 来实现,比如

import numpy as np
n = 3
arr = np.arange(n)

ix = np.repeat(arr,n**4)
iy = np.tile(np.repeat(arr,n**2),n**2)
ik = np.tile(np.repeat(arr,n**1),n**3)
il = np.tile(arr ,n**4)

quad = np.column_stack((ix,iy,ik,il))

但我做不到。关于直接实现此目的的更高效的 numpy 函数的任何想法(这是否可能使用 meshgrid?)都会有所帮助。

为什么我需要这个:qi 最终将用作提取子张量 T[qi] 的索引,其中 T 是一个张量4 个维度。

最佳答案

from itertools import product
arr0 = [3,4]
quad = product(arr0, repeat=4)

print(*quad)
(3, 3, 3, 3) (3, 3, 3, 4) (3, 3, 4, 3) (3, 3, 4, 4) (3, 4, 3, 3) (3, 4, 3, 4) (3, 4, 4, 3) (3, 4, 4, 4) (4, 3, 3, 3) (4, 3, 3, 4) (4, 3, 4, 3) (4, 3, 4, 4) (4, 4, 3, 3) (4, 4, 3, 4) (4, 4, 4, 3) (4, 4, 4, 4)

编辑:回答您编辑的问题:

arr0 = [0,1]
arr1 = [3,4]
quad = product(arr0, arr0, arr1, arr1)

关于python - 生成四元对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72578269/

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