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

原文地址:https://www.cnblogs.com/caiyishuai/p/9357611.html

时间: 2024-08-02 20:53:14

python中scipy学习——随机稀疏矩阵及操作的相关文章

如何在Python中从零开始实现随机森林

欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 决策树可能会受到高度变异的影响,使得结果对所使用的特定测试数据而言变得脆弱. 根据您的测试数据样本构建多个模型(称为套袋)可以减少这种差异,但是树本身是高度相关的. 随机森林是套袋(方法)的延伸,除了基于多个测试数据样本构建树木之外,它还限制了可用于构建树木的特征,使得树木间具有差异.这反过来可以提升算法的表现. 在本教程中,您将了解如何在Python中从头开始实现随机森林算法. 完成本教程后,您将知道: 套袋决策树和随机森林算法的区别.

Python中sqlite学习教程

Python SQLITE数据库是一款非常小巧的嵌入式开源数据库软件,没有独立的维护进程,所有的维护都来自于程序本身.它使用一个文件存储整个数据库,操作十分方便. 以下是重要的 sqlite3 模块程序,可以满足您在 Python 程序中使用 SQLite 数据库的需求.如果您需要了解更多细节,请查看 Python sqlite3 模块的官方文档. 序号 API & 描述 1 sqlite3.connect(database [,timeout ,other optional arguments

在Python中对文件和目录进行操作

文件与目录操作是编程语言中非常重要的功能,Python也对其提供了相应的API支持,这篇博文就是具体介绍它们的使用方法. 一.文件打开和关闭操作 对文件进行操作在Python中分为3个步骤,首先要打开文件,然后是对文件进行读写操作,最后需要关闭文件. 1.打开文件使用的是open()函数,它提供初始化输入.输出(I/O)操作的通用接口,成功打开文件后返回一个文件对象,打开失败则引发一个错误.打开文件的语法如下: file_object = open(file_name,access_mode [

Python中的对象的拷贝赋值操作

Python中的赋值也分传值与传地址. 用=时,传的是地址,当两者绑定到一起,其中一个发生改变时,另一个也会改变. 如: x = [1, 2, 3, 4] y = x y[0] = 5 print(x) 这时候的结果显示的是 [5, 2, 3, 4] 若要仅仅传值,则要用copy函数. x = [1, 2, 3, 4] y = x.copy() y[0] = 5 print(x) 这时候的结果就显示的是 [1, 2, 3, 4],即x的值没有改变.

吴裕雄 python 机器学习——集成学习随机森林RandomForestClassifier分类模型

import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklearn.model_selection import train_test_split def load_data_classification(): ''' 加载用于分类问题的数据集 ''' # 使用 scikit-learn 自带的 digits 数据集 digits=datasets.load_d

吴裕雄 python 机器学习——集成学习随机森林RandomForestRegressor回归模型

import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklearn.model_selection import train_test_split def load_data_regression(): ''' 加载用于回归问题的数据集 ''' #使用 scikit-learn 自带的一个糖尿病病人的数据集 diabetes = datasets.load_di

Python中subprocess学习

生命不息奋斗不止! subprocess的目的就是启动一个新的进程并且与之通信. subprocess模块中只定义了一个类: Popen.可以使用Popen来创建进程,并与进程进行复杂的交互.它的构造函数如下: subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, cwd=None

python中numpy学习

NumPy的主要对象是同种元素的多维数组.这是一个所有的元素都是一种类型.通过一个正整数元组索引的元素表格(通常是元素是数字).在NumPy中维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank). 例如,在3D空间一个点的坐标 [1, 2, 3] 是一个秩为1的数组,因为它只有一个轴.那个轴长度为3.又例如,在以下例子中,数组的秩为2(它有两个维度).第一个维度长度为2,第二个维度长度为3. [[ 1., 0., 0.], [ 0., 1., 2.]] NumPy的数组类被

python中几个实用的文件操作

1. 判断指定目录是否存在: os.path.exists(input_folder) 2. 判断指定目录是不是文件夹 os.path.isdir(input_folder) 3. 判断指定目录是不是文件 os.path.isfile(input_folder) 4. 判断指定文件是不是图片(判断给定文件是何种图片类型) ''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:××× 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' import