Вы можете использовать обычные списки Python (которые являются динамическими) в качестве векторов. Вот тривиальный пример.
from scipy.spatial.distance import sqeuclidean
a = [1,2,3]
b = [0,0,0]
print sqeuclidean(a,b) # 14
В соответствии с предложением aganders3, обратите внимание, что при необходимости вы также можете использовать пустые массивы:
import numpy
a = numpy.array([1,2,3])
Если бы разреженная часть вашего вопроса была решающей, я бы использовал для этого scipy - в ней есть поддержка разреженных матриц. Вы можете определить матрицу 1xn и использовать ее как вектор. Это работает (параметр - это размер матрицы, по умолчанию заполненный нулями):
sqeuclidean(scipy.sparse.coo_matrix((1,3)),scipy.sparse.coo_matrix((1,3))) # 0
Существует много видов разреженных матриц, основанных на некоторых словарях (см. Комментарий). Вы можете определить матрицу разреженных строк из списка следующим образом:
scipy.sparse.csr_matrix([1,2,3])