矩阵代数,高效编码

2024-10-01 09:32:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个关于如何在高维(比如真的高维)中处理转移矩阵的问题

给定两个行数不同但列数相等的矩阵A和B,可以 计算克罗内克积A⊗ B和列式Kronecker积A⊗_后者有时也称为Khatri Rao产品

现在,也可以找到一个矩阵T,这样

(一)⊗ B) T=A⊗_c B

T仅由0和1组成

我能够为较低维度编码T,但我感兴趣的实际矩阵大约有6000列。因此,转移矩阵的行/列数T以~6000的平方结束,这是一种过度消耗

我的问题是,我如何用这些巨大的矩阵来解决这个问题?我也尝试过使用稀疏矩阵,但没有效果

这是我用来构建T的代码:

def kath_kron_mat(no_cols_or_rows):

    lst = []
    for i in range(0, no_cols_or_rows):
        u = unit_vector(no_cols_or_rows ** 2, unit_vec_idx(i, no_cols_or_rows))
        lst.append(u)
        R = np.concatenate(lst, axis=1)
    return R

Tags: orno编码产品unit矩阵感兴趣rows