Skip to main content
 首页 » 编程设计

python之从两个给定的整数中生成唯一整数 Python Numpy

2025年05月04日2552php

我正在尝试使用自定义索引索引一个 numpy 数组。我知道索引只能是整数。

我有一些两个数字对看起来像:

400, 200 
300, 100 
500, 60 

我想从这对生成唯一的整数,以便我可以使用它们来索引一个 numpy 数组。喜欢,

npArray[400200, 1] = someVal 
npArray[300100, 2] = someOtherVal 

问题是,我的 numpy 数组的大小只有 4000 * 2。我如何从落入这 4000 范围内的那些对生成唯一标识符?

提前致谢。

请您参考如下方法:

据我了解您的问题,您正在寻找一种一对一创建函数的方法,以便使用另外两个整数生成一个整数。看下图,这是一个实现它的函数:

谈到 Python 实现,这是我的代码(针对 Python 3.x):

def pack(i1, i2): 
    if i1 > i2: 
        return i1**2 + i2 
    else: 
        return (i2 + 1)**2 - 1 - i1 
 
 
def unpack(i): 
    mx = int(i**0.5) 
    s = (mx**2 + (mx + 1)**2 - 1) // 2 
    if s >= i: 
        return mx, mx - s + i 
    else: 
        return mx - i + s, mx 
 
 
i = pack(3, 5) 
print(i) # 32 
 
i1, i2, = unpack(i) 
print(i1, i2) # 3 5 
 
print(pack(400, 200)) # 160200 
print(unpack(160200)) # (400, 200) 
 
print(pack(300, 100)) # 90100 
print(unpack(90100)) # (300, 100) 
 
print(pack(500, 60)) # 250060 
print(unpack(250060)) # (500, 60) 

这个索引是唯一的,因为我总是能够计算出初始的两个整数。