zoukankan      html  css  js  c++  java
  • 矩阵压缩存储(可用于FM算法中的稀疏矩阵存储)

    indptr = np.array([0, 2, 3, 6])   #6代表非零元素总个数为6
    indices = np.array([0, 2, 2, 0, 1, 2])
    data = np.array([1, 2, 3, 4, 5, 6])
    csr_matrix((data, indices, indptr), shape=(3, 3)).toarray()
    array([[1, 0, 2],
           [0, 0, 3],
           [4, 5, 6]])
    # 按row行来压缩
    # 对于第i行,非0数据列是indices[indptr[i]:indptr[i+1]] 数据是data[indptr[i]:indptr[i+1]]
    # 在本例中
    # 第0行,有非0的数据列是indices[indptr[0]:indptr[1]] = indices[0:2] = [0,2]
    # 数据是data[indptr[0]:indptr[1]] = data[0:2] = [1,2],所以在第0行第0列是1,第2列是2
    # 第1行,有非0的数据列是indices[indptr[1]:indptr[2]] = indices[2:3] = [2]
    # 数据是data[indptr[1]:indptr[2] = data[2:3] = [3],所以在第1行第2列是3
    # 第2行,有非0的数据列是indices[indptr[2]:indptr[3]] = indices[3:6] = [0,1,2]
    # 数据是data[indptr[2]:indptr[3]] = data[3:6] = [4,5,6],所以在第2行第0列是4,第1列是5,第2列是6
  • 相关阅读:
    Word操作——通配符
    圆的拟合
    最优化案例整理
    机器学习数学基础知识备忘
    scikit-learn学习笔记
    Linux下安装scikit-learn
    ROS学习备忘
    [ROS]激光驱动安装
    CMake和Linux编程:find_package的使用
    [OpenCV]直线拟合
  • 原文地址:https://www.cnblogs.com/zwtgyh/p/11841704.html
Copyright © 2011-2022 走看看