Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python faiss

作者:古枕清风   发布日期:2025-05-31   浏览:70

# 导入所需的库
import faiss
import numpy as np

# 创建一个包含1000个128维向量的随机数据集
d = 128                           # 向量维度
nb = 1000                         # 数据集大小
np.random.seed(1234)              # 设置随机种子以确保结果可复现
database = np.random.random((nb, d)).astype('float32')  # 随机生成数据集

# 构建索引
index = faiss.IndexFlatL2(d)      # 使用L2距离度量创建一个平铺索引
index.add(database)               # 将数据添加到索引中

# 查询
nq = 5                            # 查询数量
queries = np.random.random((nq, d)).astype('float32')  # 随机生成查询向量
k = 4                             # 返回最近的4个邻居
distances, indices = index.search(queries, k)  # 执行搜索

# 输出结果
print("Distances:\n", distances)
print("Indices:\n", indices)

解释说明:

  1. 导入库:首先导入 faissnumpy 库。
  2. 创建数据集:生成一个包含1000个128维向量的随机数据集,并将其转换为 float32 类型,这是 Faiss 所要求的数据类型。
  3. 构建索引:使用 IndexFlatL2 创建一个平铺索引,该索引使用 L2 距离(欧几里得距离)来衡量相似性。然后将数据集添加到索引中。
  4. 查询:生成5个随机查询向量,每个查询返回最接近的4个邻居。search 方法返回两个数组:一个是与查询点的距离,另一个是对应数据集中向量的索引。
  5. 输出结果:打印查询结果的距离和索引。

这个示例展示了如何使用 Faiss 进行简单的近似最近邻搜索。

上一篇:python for excel

下一篇:python中assert

大家都在看

python时间格式

python ord和chr

python list.pop

python的for i in range

npm config set python

python代码简单

python读取文件夹

python中turtle

python 输出时间

python中list代表什么

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站