Итак, я делаю классификацию Kmeans, используя массивы numpy, которые довольно разрежены - много и много нулей. Я решил, что я использую scipy "разреженный" пакет, чтобы уменьшить накладные расходы на хранение, но я немного смущен тем, как создавать массивы, а не матрицы.
Я прочитал этот урок о том, как создавать разреженные матрицы: http://www.scipy.org/SciPy_Tutorial#head-c60163f2fd2bab79edd94be43682414f18b90df7
Чтобы подражать массиву, я просто создаю матрицу 1xN, но, как вы можете догадаться, Asp.dot(Bsp) работает не так, потому что вы не можете умножить две матрицы 1xN. Мне пришлось бы перенести каждый массив на Nx1, и это было бы довольно хромым, так как я буду делать это для каждого вычисления точечного продукта.
Затем я попытался создать матрицу NxN, где столбец 1 == строка 1 (чтобы вы могли умножить две матрицы и просто взять верхний левый угол в качестве точечного продукта), но это оказалось действительно неэффективным.
Я бы хотел использовать scipy sparse package как волшебную замену для numpy array(), но пока я не уверен, что делать.
Любые советы?