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

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

稀疏矩阵之python实现
http://blog.csdn.net/bitcarmanlee/article/details/52668477
http://www.runoob.com/python/python-dictionary.html

# encoding:utf-8
from 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] = 2
a[2, 2] = 2
a[2, 3] = 1
a[2, 4] = 3
print(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 2
import numpy as np
S = dok_matrix((5, 5), dtype=np.float32)
for i in range(5):for j in range(5):S[i, j] = i + j    # Update elementprint(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://blog.sina.com.cn/s/blog_4bf793ad0100me7n.html

dok_matrix相关推荐

  1. 稀疏矩阵之python实现

          工程实践中,多数情况下,大矩阵一般都为稀疏矩阵,所以如何处理稀疏矩阵在实际中就非常重要. 1.sparse模块初探 python中scipy模块中,有一个模块叫sparse模块,就是专门为 ...

  2. python建立空矩阵_SciPy创建稀疏矩阵

    3. SciPy创建稀疏矩阵 严格意义上讲ndarray数据类型应属数组而非矩阵,而matrix才是矩阵,这个在NumPy创建matrix一章里有讲述,是最基本的矩阵matrix创建方法,忘记了可以回 ...

  3. python 内存不足 dict 替代方案_2D数组代表一个巨大的python dict,COOrdinate就像解决方案来节省内存...

    我尝试用数组中的数据更新dict_with_tuples_key: myarray = np.array([[0, 0], # 0, 1 [0, 1], [1, 1], # 1, 2 [1, 2], ...

  4. scipy笔记:scipy.sparse

    1 稀疏矩阵介绍 在networkx包中,很多运算返回的是sparse matrix(如nx.laplacian_matrix),这是稀疏矩阵格式.隶属于scipy.sparse import net ...

  5. 稀疏矩阵三元组 严蔚敏_Sparse稀疏矩阵主要存储格式总结

    在数据科学和深度学习等领域会采用矩阵来存储数据,但当矩阵较为庞大且非零元素较少时,运算效率和存储有效率并不高.所以,一般情况我们采用Sparse稀疏矩阵的方式来存储矩阵,来提高存储和运算效率.下面将对 ...

  6. 【Python基础】科学计算库Scipy简易入门

    0.导语 Scipy是一个用于数学.科学.工程领域的常用软件包,可以处理插值.积分.优化.图像处理.常微分方程数值解的求解.信号处理等问题.它用于有效计算Numpy矩阵,使Numpy和Scipy协同工 ...

  7. python scipy 稀疏矩阵详解

    文章目录 稀疏矩阵格式 coo_matrix csr_matrix csc_matrix lil_matrix dok_matrix dia_matrix bsr_matrix 实用函数 经验总结 参 ...

  8. 机器学习算法与Python实践之(二)k近邻(KNN)

      机器学习算法与Python实践之(二)k近邻(KNN) (基于稀疏矩阵的k近邻(KNN)实现) 一.概述 这里我们先来看看当我们的数据是稀疏时,如何用稀疏矩阵的特性为KNN算法加速.KNN算法在之 ...

  9. Event Recommendation Engine Challenge(基础版)---代码

    第一步:统计user和event相关信息 #查看train_csv的数据 import pandas as pd df_train = pd.read_csv('train.csv') df_trai ...

最新文章

  1. Ubuntu 14.04 64位安装深度音乐和深度影音
  2. C#在客户端和服务端操作Excel文件
  3. Centos 内存占满 释放内存
  4. 分享 | 来看看阿里、华为、字节的PM是怎么工作的......
  5. linux id高 负载高,linux下的rsync连接数突然增高,负载增高导致服务登录失败
  6. Java获取本地ip方法_Java获取本地IP方法详解
  7. WPF 正確理解ContentPresenter
  8. 一次 Discuz X3.2 切换数据库后无法登录的问题排查经历
  9. Android项目运行junit测试类时出现错误Internal Error (classFileParser.cpp:3494)的解决办法...
  10. java录音程序_record类完成语音信号采集的任务_Android实现语音数据实时采集、播放...
  11. JS特效之很牛叉的轮播图
  12. 问题四十三:对ray tracing圆环图形中的细微问题进行修正
  13. 分布式缓存技术redis学习系列(一)——redis简介以及linux上的安装
  14. 【RBM】代码学习--DeepLearningToolBox
  15. 可代替 ASM,使用 AnnotationProcessor 做代码插桩
  16. 网盘参差不齐,实测对比
  17. [C语言]if语句的常见用法
  18. 解决翻译论文时出现的换行问题-网页翻译-谷歌插件-翻译助手
  19. android 之输入法
  20. 基于Vue+Express+Mysql开发的手机端电影购票系统(附源码)

热门文章

  1. 算法导论笔记:12二叉搜索树
  2. Fabric CA 官方用户指南
  3. 有关计算机启动过程的书籍,操作系统—计算机的启动过程
  4. Scilab常用的命令。
  5. UNIX环境高级编程(第三版 源码及编译好的静态库文件)
  6. 【MATLAB】高塔观测数据通量梯度法计算感热及潜热通量
  7. 如何获得的office 365 年卡
  8. STM32串口外设是否需要加上拉电阻?
  9. 掌中咖啡:移动开发中的JAVA应用
  10. 淘宝api接口大全(参数返回值说明)