社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

Nathan

Nathan 最近回复了

我觉得你有一个太多了 / 在sqlalchemy uri的sqlite目录规范中。您能否将数据库URI更改为以下内容,并查看是否解决了您的问题:

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///site.db'
6 年前
回复了 Nathan 创建的主题 » 使用另一个list python从list创建索引值数组

问题是如何使这不是非常低效。我看到两种方法

  1. 使用词典以便快速查找。 numpy 数组是可变的,因此不可散列,因此您必须将它们转换为要与字典一起使用的元组。

  2. 使用广播检查 value_list 每一把钥匙 key_list 以矢量化的方式。这至少会将for循环从python中取出,但是您仍然需要将每个值与每个键进行比较。

我也要假设 密钥列表 只有唯一的“钥匙”。

以下是第一种方法:

value_list = np.array([[2,2,3],[255,243,198],[2,2,3],[50,35,3]])
key_list = np.array([[2,2,3],[255,243,198],[50,35,3]])

key_map = {tuple(key): i for i, key in enumerate(key_list)}
result = np.array([key_map[tuple(value)] for value in value_list])
result # array([0, 1, 0, 2])

下面是第二个:

result = np.where((key_list[None] == value_list[:, None]).all(axis=-1))[1]
result # array([0, 1, 0, 2])

哪种方式更快取决于 密钥列表 价值列表 . 我会给你们两种尺寸的阵列时间。

编辑-如评论中所述,第二个解决方案似乎并不完全正确,但我不确定是什么导致它失败。考虑使用第一种解决方案。