博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dok_matrix
阅读量:4019 次
发布时间:2019-05-24

本文共 1790 字,大约阅读时间需要 5 分钟。

关键词:元组; 字典; 值

字典:键-值(key-value) 字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
For example: d = {key1 : value1, key2 : value2 }
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

doc_matrix的策略是采用字典来记录矩阵中不为0的元素。自然,字典的key存的是记录元素的位置信息的元组,value是记录元素的具体值。

稀疏矩阵之python实现

# encoding:utf-8from scipy.sparse import dok_matrixa = dok_matrix((3, 10))'''Dictionary of keys(DOK)DOK represents non-zero values as a dictionary mapping tuples to values.[1] DOK represents non-zero values as a dictionary, mapping tuples to values.DOK 将非零值表示成字典,将元组映射到值。进一步理解:DOK 将元组映射到值,将非零值表示成字典。元组也就是矩阵的(行号,列号),值就是元组在矩阵上对应的某行某列的值。如:a[1][1]=1,元组就是(1,1),对应矩阵a的第2行,第2列,且矩阵在该位置值为1.[2] DOK (represents non-zero values as a dictionary) mapping tuples to values.如果是[2], 则可简化为DOK mapping tuples to values.  # DOK做主语,后面不应该接mapping. 所以我认为是[1]理解比较合理。This format is good for incrementally constructing a sparse array, but poor for iterating over non-zero values in sorted order.这种格式对于增量构建稀疏数组有利,但是在迭代有序的非零值上表现很差。'''a[1, 2] = 2a[2, 2] = 2a[2, 3] = 1a[2, 4] = 3print(a)print('---------------------')print(a[2])print('---------------------')print(a[2].nonzero()[1])print(a[2].nonzero())print(a[2].values())print('====================')'''(1, 2) 2.0(2, 3) 1.0(2, 4) 3.0(2, 2) 2.0'''# example 2import numpy as npS = dok_matrix((5, 5), dtype=np.float32)for i in range(5):    for j in range(5):        S[i, j] = i + j    # Update element        print(S[i,j])

运行结果

D:\Anaconda2\python.exe D:/pycode/NCF_sq/analysis/sample.py

(1, 2) 2.0
(2, 3) 1.0
(2, 4) 3.0

(2, 2) 2.0

(0, 3) 1.0

(0, 2) 2.0

(0, 4) 3.0

[3 2 4]

(array([0, 0, 0]), array([3, 2, 4]))

[1.0, 2.0, 3.0]

0.0

1.0
2.0
3.0
4.0
1.0
2.0
3.0
4.0
5.0
2.0
3.0
4.0
5.0
6.0
3.0
4.0
5.0
6.0
7.0
4.0
5.0
6.0
7.0
8.0

Process finished with exit code 0

博客

转载地址:http://yyrfi.baihongyu.com/

你可能感兴趣的文章
IP校验和详解
查看>>
C++中使用Mongo执行count和distinct运算
查看>>
一些socket的编程经验
查看>>
socket编程中select的使用
查看>>
C++获取文件大小常用技巧分享
查看>>
未来5年大机遇:做贩卖多巴胺的超级玩家
查看>>
关于AIS编码解码的两个小问题
查看>>
GitHub 万星推荐:黑客成长技术清单
查看>>
可以在线C++编译的工具站点
查看>>
关于无人驾驶的过去、现在以及未来,看这篇文章就够了!
查看>>
所谓的进步和提升,就是完成认知升级
查看>>
昨夜今晨最大八卦终于坐实——人类首次直接探测到了引力波
查看>>
如何优雅、机智地和新公司谈薪水?
查看>>
为什么读了很多书,却学不到什么东西?
查看>>
长文干货:如何轻松应对工作中最棘手的13种场景?
查看>>
关于WebClient超时问题
查看>>
创业公司如何与巨头竞争?利用好这9大优势是关键
查看>>
读书 | 如何像沉迷游戏一样对工作上瘾?
查看>>
如何确保自己的Mac数据安全呢?这里有四个“小秘诀”
查看>>
如何用好碎片化时间,让思维更有效率?
查看>>