所以我在写一个代码,它使用精确对角化来研究Lieb-Liniger模型。第一步是构建一个包含描述粒子占据的列表的numpy数组。数组看起来像
array([[2, 0, 0],
[1, 1, 0],
[1, 0, 1],
[0, 2, 0],
[0, 1, 1],
[0, 0, 2]])
对于3个粒子中的2个模式。我的问题是,是否可以在这个数组中获取特定列表的索引,类似于使用index函数在常规列表中获取索引。例如,对于一个列表列表,a,我可以使用a.index(a中的一些列表)来获取该列表的索引,但是我尝试过使用纽比。在哪里(HS=[2,0,0]),以获得[2,0,0]的索引(依此类推),但没有效果。对于大量的粒子和模式,我正在寻找一种有效的方法来获得这些指数,我认为使用numpy数组是非常有效的,但是我刚刚碰到了这个问题,并没有找到解决方案。有什么建议吗?在
您可以使用
np.where()
执行以下操作:以下是几种执行此查找的方法:
我使用元组作为字典键-元组是一个不可变的列表。在
对于这个小尺寸,字典方法是最快的,特别是如果字典可以构建一次并重复使用。即使是动态构造,它也比
np.where
更快。但是你应该用更真实的尺寸来测试它。在Python字典针对速度进行了调整,因为它们是语言操作的基础。在
np.where
中的片段都很快,使用了编译的代码。但是,它仍然需要比较A
和{相关问题 更多 >
编程相关推荐