从两个给定的整数Python Numpy中创建唯一整数

Has*_*bal 1 python arrays indexing numpy uniqueidentifier

我试图用自定义索引索引一个numpy数组.我理解索引只能是整数.

我看到的两个数字对中的一些:

400, 200
300, 100
500, 60
Run Code Online (Sandbox Code Playgroud)

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

npArray[400200, 1] = someVal
npArray[300100, 2] = someOtherVal
Run Code Online (Sandbox Code Playgroud)

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

提前致谢.

Fom*_*aut 5

据我所知,你正在寻找一种方法来一对一地创建一个函数,以便使用另外两个函数生成一个整数.看下面的图片,这是一个实现它的功能:

在此输入图像描述

谈到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)
Run Code Online (Sandbox Code Playgroud)

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