python中scipy学习——随机稀疏矩阵及操作
1.生成随机稀疏矩阵:
scipy中生成随机稀疏矩阵的函数如下:
scipy.sparse.rand(m,n,density,format,dtype,random_state)
- 1
参数介绍:
| 参数 | 含义 |
|---|---|
| m,n | 整型;表示矩阵的行和列 |
| density | 实数类型;表示矩阵的稀疏度 |
| format | str类型;表示矩阵的类型;如format=‘coo’ |
| dtype | dtype;表示返回矩阵值的类型 |
| ranom_state | {numpy.random.RandomState,int};可选的随机种子;如果空缺,默认numpy.random |
例子
代码如下:
import scipy as spy n=4
m=4
density=0.5
matrixformat='coo'
B=spy.sparse.rand(m,n,density=density,format=matrixformat,dtype=None)
print(B) >>>
(1, 1) 0.0687198939788 (3, 3) 0.141328654998 (0, 3) 0.944468193258 (2, 3) 0.598652789611 (0, 2) 0.0629165518906 (2, 0) 0.624087894456 (1, 2) 0.309460820898 (2, 2) 0.731375305002
2.稀疏矩阵的操作:
import scipy as spy n=4
m=4
row=spy.array([0,0,0,1,1,3,3])
col=spy.array([0,0,1,2,3,2,3])
value=spy.array([1,2,1,8,1,3,5])
print('自定义生成一个csc格式的稀疏矩阵..')#'coo'格式的矩阵无法进行以下某些操作
A=spy.sparse.csc_matrix((value,(row,col)),shape=(n,m))
print('稀疏矩阵的非稀疏表示形式...')
print(A.todense())
print('稀疏矩阵的非零元素对应坐标...')
nonzero=A.nonzero()
print(nonzero)
print('输出非零元素对应的行坐标和列坐标...')
print(nonzero[0])
print(nonzero[1])
print('输出第i行非零值...')
i=2
print(A[i,:])
print('输出第j列非零值...')
j=2
print(A[:,j])
print('输出坐标为(i,j)对应的值...')
print(A[i,j])
输出结果如下:
自定义生成一个csc格式的稀疏矩阵..
稀疏矩阵的非稀疏表示形式...
[[3 1 0 0]
[0 0 8 1]
[0 0 0 0]
[0 0 3 5]]
稀疏矩阵的非零元素对应坐标...
(array([0, 0, 1, 1, 3, 3], dtype=int32), array([0, 1, 2, 3, 2, 3], dtype=int32))
输出非零元素对应的行坐标和列坐标...
[0 0 1 1 3 3]
[0 1 2 3 2 3]
输出第i行非零值... 输出第j列非零值...
(1, 0) 8
(3, 0) 3
输出坐标为(i,j)对应的值...
0
注:更多参考请查看docs.scipy.org
python中scipy学习——随机稀疏矩阵及操作的更多相关文章
- Python中对 文件 的各种骚操作
Python中对 文件 的各种骚操作 python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getc ...
- Python中实现对list做减法操作介绍
Python中实现对list做减法操作介绍 这篇文章主要介绍了Python中实现对list做减法操作介绍,需要的朋友可以参考下 问题描述:假设我有这样两个list, 一个是list1,list1 = ...
- 如何在Python中从零开始实现随机森林
欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 决策树可能会受到高度变异的影响,使得结果对所使用的特定测试数据而言变得脆弱. 根据您的测试数据样本构建多个模型(称为套袋)可以减少这种差异,但是 ...
- python中的字符串(str)操作
字符串是python中数据类型.一般就单引号(‘’)或双引号(“”)引起来的内容就是字符串. 例如:下面两个都是定义字符串 str1 = "hello world" str2 = ...
- python中with学习
python中with是非常强大的一个管理器,我个人的理解就是,我们可以通过在我们的类里面自定义enter(self)和exit(self,err_type,err_value,err_tb)这两个内 ...
- 吴裕雄 python 机器学习——集成学习随机森林RandomForestRegressor回归模型
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklear ...
- 吴裕雄 python 机器学习——集成学习随机森林RandomForestClassifier分类模型
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklear ...
- python中库学习
一.numpy NumPy的主要对象是同种元素的多维数组.这是一个所有的元素都是一种类型.通过一个正整数元组索引的元素表格(通常是元素是数字).在NumPy中维度(dimensions)叫做轴(axe ...
- Python中对字节流/二进制流的操作:struct
前言 前段时间使用Python解析IDX文件格式的MNIST数据集,需要对二进制文件进行读取操作,其中我使用的是struct模块.查了网上挺多教程都写的挺好的,不过对新手不是很友好,所以我重新整理了一 ...
随机推荐
- String.Remove
String.Remove方法注意事项: 1.该方法不改变元字符串: 2.str = ‘’: str.Remove(str.Length-3);明显超限,但是不报错,返回值为''; str = '1 ...
- Linux(CentOS7)下发送邮件(使用Gmail作为发件服务器)
参考下述文章的思路,补充了在Gmail上的相关设置 https://gist.github.com/ilkereroglu/aa6c868153d1c5d57cd8 1.安装mailx yum ins ...
- Java语言基础-运算符
一丶逻辑运算符 1.&和&&的区别 (1).两个逻辑运算符的结果是一样的 (2).当第一个表达式为false时,&是会判断后边的表达式,而&&会产生短路 ...
- JAVA交换两个变量的值-(不使用第三变量)
以下方法的根本原理就是: 借助第三个变量 c = a; a = b; b = c; 运算符-不借助第三变量: a = a+b; b = a-b; a = a-b; 为运算符-不借助第三个变量: (此种 ...
- ffmpeg jpeg图片播放失败之问题排查
播放jpeg时,avformat_find_stream_info出现以下问题,排查: [jpeg_pipe @ 0x146a80] Could not find codec parameters f ...
- Ubuntu与ROS的Docker桌面系统与ROS在线练习课程(在线Linux虚拟机)
ROS在线练习课程正在逐步完善中,目前以ROS官网中文资料制作,可参考: https://www.shiyanlou.com/courses/854 邀请码 U23ERF8H 安装Ubuntu+RO ...
- event.preventDefault() 解决按钮多次点击 导致页面变大
event.preventDefault() 解决按钮多次点击 导致页面变大
- 单一功能学习——百度AI之身份证识别
以下内容基本是从官方接口文档复制过来的,附带自己封装的代码 时间:2018年4月4日 一.导入工具包 使用maven依赖: <dependency> <groupId>com. ...
- Ubuntu 12.04.1 OK335xS busybox-1.24.1 文件系统编译错误及解决方案
Ubuntu OK335xS busybox- 文件系统编译错误及解决方案 一.参考文档: 编译busybox的一些错误: http://blog.csdn.net/hshl1214/article/ ...
- 【ACM非算法部分】综合篇
从零开始系列,也为了更好的补缺补漏. ===================== 目录: scanf()函数 STL汇总 读入优化 =====================