симметричную матрицу в виде вектора

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
n = 5
# Берём матрицу
x = np.random.randn(n, n)
# отрезаем все, что находится
# k - номер диагонали, выше которой все элементы зануляются
L = np.tril(x, k=-1)
# Вытащить из L все ненулевые элементы (то, что нам и надо)
x_packed = L[L.nonzero()]
# посмотрим, что получилось
print x_packed
print L