Skip to main content

LSHash

A fast Python implementation of locality sensitive hashing.

I am using https://github.com/kayzhu/LSHash, but it stops to update since 2013.
So I maintain it myself.

Highlights

  • Fast hash calculation for large amount of high dimensional data through the use of numpy arrays.
  • Built-in support for persistency through Redis.
  • Multiple hash indexes support.
  • Built-in support for common distance/objective functions for ranking outputs.

Installation

LSHash depends on the following libraries:

  • numpy
  • redis (if persistency through Redis is needed)
  • bitarray (if hamming distance is used as distance function)

To install:

$ pip install lshash

Quickstart

To create 6-bit hashes for input data of 8 dimensions:

from py_lsh import LSHash

lsh = LSHash(6, 8)
lsh.index([1, 2, 3, 4, 5, 6, 7, 8])
lsh.index([2, 3, 4, 5, 6, 7, 8, 9])
lsh.index([10, 12, 99, 1, 5, 31, 2, 3])
lsh.query([1, 2, 3, 4, 5, 6, 7, 7])

[((1, 2, 3, 4, 5, 6, 7, 8), 1.0), ((2, 3, 4, 5, 6, 7, 8, 9), 11)]

Main Interface

  • To initialize a LSHash instance:
LSHash(hash_size, input_dim, num_of_hashtables=1, storage=None)

parameters:

  • hash_size: The length of the resulting binary hash.
  • input_dim: The dimension of the input vector.
  • num_hashtables = 1: (optional) The number of hash tables used for multiple lookups.
  • storage = None: (optional) Specify the name of the storage to be used for the index storage. Options include "redis".

To index a data point of a given LSHash instance, e.g., lsh:

lsh.index(input_point, extra_data=None)

parameters:

  • input_point: The input data point is an array or tuple of numbers of input_dim.
  • extra_data = None: (optional) Extra data to be added along with the input_point.

To query a data point against a given LSHash instance, e.g., lsh:

lsh.query(query_point, num_results=None, distance_func="euclidean")

parameters:

  • query_point: The query data point is an array or tuple of numbers of input_dim.
  • num_results = None: (optional) The number of query results to return in ranked order. By default all results will be returned.
  • distance_func = "euclidean": (optional) Distance function to use to rank the candidates. By default euclidean distance function will be used.

Metadata

Release files for py-lsh 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for py-lsh 0.0.2
File Size Uploaded
py_lsh-0.0.2.tar.gz 5.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for py-lsh 0.0.2
File Interpreter ABI Platform
py_lsh-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 12.8 kB

Release files / py_lsh-0.0.2.tar.gz

Download URL py_lsh-0.0.2.tar.gz
Size 5.9 kB
Tags Source
SHA-256 checksum
How to use checksums
9f9d1a8efe9bff2fb527e2bb5fe4f791c1cff29124472a3fb4b5eb99ea1c5e19
BLAKE2b-256 checksum
How to use checksums
e710d0d2f115768a890010f2d86d6f62b2f959484e82f3e2b060ba5b901d7dc2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.6.1 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5

Release files / py_lsh-0.0.2-py3-none-any.whl

Download URL py_lsh-0.0.2-py3-none-any.whl
Size 6.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
42b4ad2328e05bd14d2fdf27183e41d4d085e36b4ad4a912c2ad0348787262ff
BLAKE2b-256 checksum
How to use checksums
1829fa6e603f720c75692e9f6dba4c972d1b1cfca79ab7bef54fae006fa8f671
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.6.1 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page