gpt4 book ai didi

python - 将整数数组编码为唯一的 int

转载 作者:太空狗 更新时间:2023-10-30 00:21:15 26 4
gpt4 key购买 nike

我有固定数量的以下形式的 int 数组:

[a,b,c,d,e]

例如:

[2,2,1,1,2]

其中ab可以是0到2的整数,cd可以是0或1,e 可以是 0 到 2 之间的整数。

因此有:3 * 3 * 2 * 2 * 3:108 这种形式的可能数组。

我想为每个数组分配一个从 0 到 107 的唯一整数代码。

我卡住了,我想把数组中的每个数字相加,但是有两个数组,例如:

[0,0,0,0,1] and [1,0,0,0,0]

都会加到 1。

有什么建议吗?

谢谢。

最佳答案

你可以使用 np.ravel_multi_index :

>>> np.ravel_multi_index([1, 2, 0, 1, 2], (3, 3, 2, 2, 3))
65

验证:

>>> {np.ravel_multi_index(j, (3, 3, 2, 2, 3)) for j in itertools.product(*map(range, (3,3,2,2,3)))} == set(range(np.prod((3, 3, 2, 2, 3))))
True

往回走:

>>> np.unravel_index(65, dims=(3, 3, 2, 2, 3))
(1, 2, 0, 1, 2)

关于python - 将整数数组编码为唯一的 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48411962/

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