Exemplo n.º 1
0
def upper_triangle(mat_a_vec_b):
    m_row, n_col = matrix.shape(mat_a_vec_b)
    for i_pivot in range(m_row - 1):
        pivot = float(mat_a_vec_b[i_pivot][i_pivot])
        for j_row in range(i_pivot + 1, m_row):
            ratio = -(mat_a_vec_b[j_row][i_pivot] / pivot)
            matrix.row_mul_add(mat_a_vec_b, j_row, i_pivot, ratio, i_pivot)
Exemplo n.º 2
0
def de_mean_matrix(A):
    # вернуть результат вычесления из каждого значения
    # в А среднього значения столбца
    # Результирующия матрица имеет нулевое среднее в кождом столбце
    nr, nc = mat.shape(A)
    colomn_means, _ = scale(A)
    return mat.make_matrix(nr, nc, lambda i, j: A[i][j] - colomn_means[j])
def gauss_elimination(mat_a, b):
    """
    1차 다원 연립 방정식 Ax = b에서 x를 구함
    A : 계수행렬
    b : 상수벡터
    :param mat_a:
    :param b:
    :return:
    """

    m_row, n_col = matrix.shape(mat_a)
    mat_a_vec_b = matrix.alloc_mat(m_row, n_col + 1)

    for i in range(m_row):
        for j in range(n_col):
            mat_a_vec_b[i][j] = mat_a[i][j]
        mat_a_vec_b[i][-1] = b[i]

    upper_triangle(mat_a_vec_b)

    x = back_substitution(mat_a_vec_b)

    del mat_a_vec_b[:]
    del mat_a_vec_b

    return x
def de_mean_matrix(A):
    """returns the result of subtracting from everty value in A the
    mean value of its column, the resulting matri has mean 0 in every column"""
    nr, nc = matrix.shape(A)
    column_means, __ = scale(A)
    return matrix.make_mtr(nr, nc, lambda i, j: A[i][j] -
                                               column_means[j])
Exemplo n.º 5
0
def scale(data_matrix):
    # вернуть среднии и стандартные отклонения для каждого столпца
    num_rows, num_cols = mat.shape(data_matrix)
    mean = [mat.mean(get_column(data_matrix, j)) for j in range(num_rows)]
    stdevs = [
        standart_deviation(get_column(data_matrix, j)) for j in range(num_cols)
    ]
    return means, stdevs
def scale(data_matrix):
    """returns the means and std dev of each col"""
    num_rows, num_cols = matrix.shape(data_matrix)
    means = [stats.mean(matrix.get_col(j,data_matrix)) for j in
             range(num_cols)]
    stdevs = [stats.stdev(matrix.get_col(j, data_matrix)) for j in
             range(num_cols)]

    return means, stdevs
Exemplo n.º 7
0
def generate_mat_ai(mat_a):
    m_row, n_col = matrix.shape(mat_a)
    mat_ai = matrix.alloc_mat(m_row, n_col + m_row)
    for i_pivot in range(m_row):
        for j_col in range(n_col):
            mat_ai[i_pivot][j_col] = mat_a[i_pivot][j_col]

        mat_ai[i_pivot][n_col + i_pivot] = 1.0

    return mat_ai
Exemplo n.º 8
0
def correlation_matrix(data):
    # возвращает матрицу num_colums * num_colums где запись
    # в ячейке (i , j ) - это корреляция между столбцами i  и j данных
    _, num_colums = mat.shape(data)

    # pfgbcm d vfnhbwt
    def matrix_entry(i, j):
        return ind.correlation(mat.get_collumn(data, i),
                               mat.get_collumn(data, j))

    return mat.make_matrix(num_colums, num_colums, matrix_entry)
def rescale(data_matrix):
    """rescales the input data_raw so that each column has mean 0 and
    stdev1"""

    means, stdevs = scale(data_matrix)

    def rescaled(i,j):
        if stdevs[j]>0:
            return (data_matrix[i][j] - means[j])/stdevs[j]
        else:
            data_matrix[i][j]

    num_rows, num_cols = matrix.shape(data_matrix)
    return matrix.make_mtr(num_rows, num_cols, rescaled)
def rescale(data):
    """
    rescales the input data so that each column has mean 0 and standard deviation 1
    leaves alone columns with no deviation
    """
    means, stdevs = scale(data)

    def rescaled(i, j):
        if stdevs[j] > 0:
            return (data[i][j] - means[j]) / stdevs[j]
        else:
            return data[i][j]

    num_rows, num_cols = shape(data)
    return make_matrix(num_rows, num_cols, rescaled)
Exemplo n.º 11
0
def gauss_elimination(mat_a, b):
    m_row, n_col = matrix.shape(mat_a)
    mat_a_vec_b = matrix.alloc_mat(m_row, n_col + 1)

    for i in range(m_row):
        for j in range(n_col):
            mat_a_vec_b[i][j] = mat_a[i][j]
        mat_a_vec_b[i][-1] = b[i]

    upper_triangle(mat_a_vec_b)

    x = back_substitution(mat_a_vec_b)

    del mat_a_vec_b[:]
    del mat_a_vec_b
    return x
def scale(data):
    num_rows, num_cols = shape(data)
    means = [mean(get_column(data, j)) for j in range(num_cols)]
    stdevs = [standard_deviation(get_column(data, j)) for j in range(num_cols)]
    return means, stdevs
Exemplo n.º 13
0
import matrix

matrix = matrix.Matrix()
shape = [[0,0,0,0,0,0,0,0], [0,1,1,0,0,1,1,0], [1,0,0,1,1,0,0,1], [1,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,1], [0,1,0,0,0,0,1,0], [0,0,1,0,0,1,0,0], [0,0,0,1,1,0,0,0]]
matrix.shape(shape)