diff --git a/python_bindings/nmslib.cc b/python_bindings/nmslib.cc index 69e0f361..915d4c3c 100644 --- a/python_bindings/nmslib.cc +++ b/python_bindings/nmslib.cc @@ -208,7 +208,7 @@ struct IndexWrapper { } else if (data_type == DATATYPE_DENSE_VECTOR) { // allow numpy arrays to be returned here too - py::array_t items(input); + py::array_t items(input); auto buffer = items.request(); if (buffer.ndim != 2) throw std::runtime_error("data must be a 2d array"); diff --git a/python_bindings/tests/bindings_test.py b/python_bindings/tests/bindings_test.py index 5fb88a42..202b8c43 100644 --- a/python_bindings/tests/bindings_test.py +++ b/python_bindings/tests/bindings_test.py @@ -47,6 +47,13 @@ def testKnnQueryBatch(self): for query, (ids, distances) in zip(queries, results): self.assertTrue(get_hitrate(get_exact_cosine(query, data), ids) >= 5) + # test col-major arrays + queries = np.asfortranarray(queries) + results = index.knnQueryBatch(queries, k=10) + for query, (ids, distances) in zip(queries, results): + self.assertTrue(get_hitrate(get_exact_cosine(query, data), ids) >= 5) + + def testReloadIndex(self): np.random.seed(23) data = np.random.randn(1000, 10).astype(np.float32)