栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python中稀疏矩阵的矩阵乘法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python中稀疏矩阵的矩阵乘法

你看了

scipy.sparse
吗?在这里没有必要重新发明轮子。稀疏矩阵是相当标准的事情。

(在示例中,我正在使用

300000x4
矩阵以使乘法后的打印更容易。不过,
300000x1000
矩阵应该没问题。假设您拥有大多数
0
元素,这比将两个密集数组相乘要快得多。)

import scipy.sparseimport numpy as np# Make the result reproducible...np.random.seed(1977)def generate_random_sparse_array(nrows, ncols, numdense):    """Generate a random sparse array with -1 or 1 in the non-zero portions"""    i = np.random.randint(0, nrows-1, numdense)    j = np.random.randint(0, ncols-1, numdense)    data = np.random.random(numdense)    data[data <= 0.5] = -1    data[data > 0.5] = 1    ij = np.vstack((i,j))    return scipy.sparse.coo_matrix((data, ij), shape=(nrows, ncols))A = generate_random_sparse_array(4, 300000, 1000)B = generate_random_sparse_array(300000, 5, 1000)C = A * Bprint C.todense()

这样产生:

[[ 0.  1.  0.  0.  0.] [ 0.  2. -1.  0.  0.] [ 1. -1.  0.  0.  0.] [ 0.  0.  0.  0.  0.]]


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/637048.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号