scipy常见数据结构:coo_matrix、csc_matrix与csr_matrix
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scipy常见数据结构:coo_matrix、csc_matrix与csr_matrix相关的知识,希望对你有一定的参考价值。
参考技术A coo_matrix全称是A sparse matrix in COOrdinate format,一种基于坐标格式的稀疏矩阵,每一个矩阵项是一个三元组(行,列,值)。该矩阵的常见构造方法有如下几种:
输出为:
使用稠密二维数组构造
输出为:
array([[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]], dtype=int8)
输出为:
array([[4, 0, 9, 0],
[0, 7, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 5]])
如果行列坐标有重复,对应的值直接累加,举例如下:
输出为:
array([[3, 0, 1, 0],
[0, 2, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 1]])
csr是Compressed Sparse Row matrix的缩写即压缩稀疏基于行存储的矩阵,好绕口,该矩阵有如下几种构造方法:
输出为:
输出为:
array([[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]], dtype=int8)
输出为:
array([[1, 0, 2],
[0, 0, 3],
[4, 5, 6]])
按行存储,即先存储第0行,然后第1行,依次到最后一行,即先扫描row数组的数据,第一个数据是0即第0行,然后扫描col的第一个数据是0即第0列,那么第0行第0列存储的值就是data的第一个数据即1,然后继续扫描row的第二个数据还是0即还是第0行,col对应的第二个数据是2即第2列,data的第二个数据是2,即第0行第2列的数据是2,依次扫描row,找对应的col和data构造稀疏矩阵。
输出为:
array([[1, 0, 2],
[0, 0, 3],
[4, 5, 6]])
csc是Compressed Sparse Column matrix的缩写即基于列存储的压缩稀疏矩阵,该矩阵有如下几种构造方法:
输出如下:
和前面的csr的输出对比可以看出该矩阵是按列逐个存储。
输出如下:
array([[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]], dtype=int8)
输出如下:
array([[1, 0, 4],
[0, 0, 5],
[2, 3, 6]])
输出如下:
array([[1, 0, 4],
[0, 0, 5],
[2, 3, 6]])
coo_matrix由于构造方便容易理解,所以通常都是先构造该矩阵然后调用tocsr和tocsc函数来获取另外两种矩阵的存储。
csr_matrix支持快速的按行切片,而csc_matrix则支持快速按列切片操作。
python数据分析之numpy+pandas+scipy+matplotlib+scikit-learn安装
摘要
利用python来进行数据分析的时候,需要安装一些常见的工具包,如numpy,pandas,scipy等等,在安装的过程中,经常遇到一些安装细节的问题,如版本不匹配,需要依赖包没有正确安装等等,本文汇总梳理了下几个必要安装包的安装步骤,希望对读者有帮助,环境是windows 64 bit+python2.7.11。
一.安装python2.7.11
进入官网:https://www.python.org/downloads/release/python-2711/
下载如下的连接:
下载之后是一个msi安装文件,python-2.7.11.amd64.msi,直接选择目录安装。
安装完之后要设置要python的环境变量,确保在命令行中支持。步骤如下:
右键我的电脑-->属性-->高级-->环境变量-->path
在最后添加python2.7.11安装的目录,如:
二.升级pip到8.1版本
Python2.7.11版本安装之后默认安装了pip 7.1.2版本,使用如下命令升级到8.1版本:python -m pip install --upgrade pip
出现如下提示代表安装成功:
三.安装numpy
到官网下载对应的版本号:
https://pypi.python.org/pypi/numpy/1.10.4
http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy
(ps:官网上面好像找不到比较老的版本,我自己是在CSDN上找到的一个资源包下载的:http://download.csdn.net/download/pleaseandplease/9387857,下载这个包:numpy-1.10.2+mkl-cp27-none-win_amd64.whl )
下载下来放入一个固定目录之后,使用命令pip install numpy*.whl来安装,成功之后结果如下:
使用pip list也能看到安装之后的版本:
import使用正常
四.安装scipy
网上下载对应的whl安装包,如:
scipy-0.15.1-cp27-none-win_amd64.whl
官网上目前只有较新版本的,1.5版本的没有提供,我是在微盘上下载的,连接如下:
http://vdisk.weibo.com/s/Dp2sFMRNcCOI
官网上面的whl包只有较新版本了。
下载下来之后,参考如上的方式,使用pip来安装,成功的提示如下:
Pip list也能看到安装的版本
import使用测试ok
五.安装matplot
类似如上步骤,下载对应的whl版本,如:
matplotlib-1.5.0-cp27-none-win_amd64.whl
官网上好像也下不了那么老的版本,我是在这个连接上下的:
使用pip install安装,成功之后如下提示:
安装matplot的时候,会安装一些依赖的包,如dateutil,使用pip list查看发现新增加了很多包:
使用import来使用ok
>>> import matplotlib.pyplot as plt >>> plt.plot([1,2,3]) [<matplotlib.lines.Line2D object at 0x00000000079E9BE0>] >>> plt.show()
|
六.安装scikit-learn
到官网去下载对应的whl版本,
https://sourceforge.net/projects/scikit-learn/files/?source=navbar
比如用的这个版本:
使用pip install命令来安装,成功如下:
Pip list看到安装版本
使用import来测试ok
七.安装pandas
去官网http://pandas.pydata.org/找到对应的版本链接
下载对应的wheel版本:
使用pip install来安装
Pip list看到版本
import 使用正常
八.所有安装包
上面所有需要安装的包列表如下:
以上是关于scipy常见数据结构:coo_matrix、csc_matrix与csr_matrix的主要内容,如果未能解决你的问题,请参考以下文章