栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python 主对角线随机赋值,并转为稀疏矩阵存储方式存储

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

Python 主对角线随机赋值,并转为稀疏矩阵存储方式存储

问题

用Python将主对角线随机赋值,并转为稀疏矩阵存储方式存储。

代码
import numpy as np
a = np.eye(50 + 100)
#获取主对角线元素的索引
row, col = np.diag_indices_from(a)
nums = np.random.randn(150)
a[row,col] = nums

print(a)
# a[row, col] = [3, 3, 3]
diag_mat = sp.dok_matrix((50 + 100, 50 + 100), dtype=np.float32)
diag_mat = diag_mat.tolil()

for i in range(150):
    diag_mat[i,i] = nums[i]
#
diag_mat = diag_mat.todok()
print(diag_mat)

结果:

[[-0.49376021  0.          0.         ...  0.          0.
   0.        ]
 [ 0.         -0.96180703  0.         ...  0.          0.
   0.        ]
 [ 0.          0.          0.48238295 ...  0.          0.
   0.        ]
 ...
 [ 0.          0.          0.         ...  1.23528678  0.
   0.        ]
 [ 0.          0.          0.         ...  0.         -0.13151499
   0.        ]
 [ 0.          0.          0.         ...  0.          0.
  -0.36365596]]

(0, 0)	-0.4937602
  (1, 1)	-0.961807
  (2, 2)	0.48238295
  (3, 3)	-0.30496156
  (4, 4)	-1.286084
  (5, 5)	0.07340599
  (6, 6)	0.22211555
  (7, 7)	1.2685962
  (8, 8)	1.6865137
  (9, 9)	1.5651793
  (10, 10)	-0.2147652
  (11, 11)	-1.5041517
  (12, 12)	0.6453798
  (13, 13)	-1.8234185
  (14, 14)	0.78001535
  (15, 15)	-1.9518493
  (16, 16)	0.4825181
  (17, 17)	-0.20399472
  (18, 18)	-1.0064268
  (19, 19)	-0.21058628
  (20, 20)	-0.3707919
  (21, 21)	-0.5469619
  (22, 22)	-0.017009983
  (23, 23)	-0.21762404
  (24, 24)	-0.3296507
  :	:
  (125, 125)	0.13379188
  (126, 126)	-0.1629743
  (127, 127)	0.7297306
  (128, 128)	-0.39907572
  (129, 129)	0.15937302
  (130, 130)	-0.96086323
  (131, 131)	-0.4023909
  (132, 132)	-0.96251607
  (133, 133)	-1.0399616
  (134, 134)	-0.56568336
  (135, 135)	-0.048772946
  (136, 136)	0.03985741
  (137, 137)	-2.0433953
  (138, 138)	-0.92559654
  (139, 139)	0.0040378957
  (140, 140)	-0.23906757
  (141, 141)	-0.1641567
  (142, 142)	-0.2031665
  (143, 143)	-1.0103549
  (144, 144)	-1.1027819
  (145, 145)	-0.51666343
  (146, 146)	0.18575223
  (147, 147)	1.2352868
  (148, 148)	-0.13151498
  (149, 149)	-0.36365595
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/468169.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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