python 画风场 scipy_Python数据分析及可视化实例之Scipy

强大到没有朋友的科学计算库,不知道怎么介绍ta!

大牛张若愚出了厚本的《Python 科学计算》第二版

里面包罗万象,就不做搬运工了,尽快开工pandas。

来一弹在NLP自然语言处理中用到的稀疏矩阵处理:

# coding: utf-8

# # 稀疏矩阵

# `Scipy` 提供了稀疏矩阵的支持(`scipy.sparse`)。

#

# 稀疏矩阵主要使用 位置 + 值 的方法来存储矩阵的非零元素,根据存储和使用方式的不同,有如下几种类型的稀疏矩阵:

#

# 类型|描述

# ---|----

# `bsr_matrix(arg1[, shape, dtype, copy, blocksize])`| Block Sparse Row matrix

# `coo_matrix(arg1[, shape, dtype, copy])`| A sparse matrix in COOrdinate format.

# `csc_matrix(arg1[, shape, dtype, copy])`| Compressed Sparse Column matrix

# `csr_matrix(arg1[, shape, dtype, copy])`| Compressed Sparse Row matrix

# `dia_matrix(arg1[, shape, dtype, copy])`| Sparse matrix with DIAgonal storage

# `dok_matrix(arg1[, shape, dtype, copy])`| Dictionary Of Keys based sparse matrix.

# `lil_matrix(arg1[, shape, dtype, copy])`| Row-based linked list sparse matrix

#

# 在这些存储格式中:

#

# - COO 格式在构建矩阵时比较高效

# - CSC 和 CSR 格式在乘法计算时比较高效

# ## 构建稀疏矩阵

# In[1]:

from scipy.sparse import *

import numpy as np

# 创建一个空的稀疏矩阵:

# In[2]:

coo_matrix((2,3))

# 也可以使用一个已有的矩阵或数组或列表中创建新矩阵:

# In[4]:

A = coo_matrix([[1,2,0],[0,0,3],[4,0,5]])

print(A)

# 不同格式的稀疏矩阵可以相互转化:

# In[5]:

type(A)

# In[6]:

B = A.tocsr()

type(B)

# 可以转化为普通矩阵:

# In[7]:

C = A.todense()

C

# 与向量的乘法:

# In[8]:

v = np.array([1,0,-1])

A.dot(v)

# 还可以传入一个 `(data, (row, col))` 的元组来构建稀疏矩阵:

# In[9]:

I = np.array([0,3,1,0])

J = np.array([0,3,1,2])

V = np.array([4,5,7,9])

A = coo_matrix((V,(I,J)),shape=(4,4))

# In[11]:

print(A)

# COO 格式的稀疏矩阵在构建的时候只是简单的将坐标和值加到后面,对于重复的坐标不进行处理:

# In[13]:

I = np.array([0,0,1,3,1,0,0])

J = np.array([0,2,1,3,1,0,0])

V = np.array([1,1,1,1,1,1,1])

B = coo_matrix((V,(I,J)),shape=(4,4))

print(B)

# 转换成 CSR 格式会自动将相同坐标的值合并:

# In[15]:

C = B.tocsr()

print(C)

# ## 求解微分方程

# In[16]:

from scipy.sparse import lil_matrix

from scipy.sparse.linalg import spsolve

from numpy.linalg import solve, norm

from numpy.random import rand

# 构建 `1000 x 1000` 的稀疏矩阵:

# In[17]:

A = lil_matrix((1000, 1000))

A[0, :100] = rand(100)

A[1, 100:200] = A[0, :100]

A.setdiag(rand(1000))

# 转化为 CSR 之后,用 `spsolve` 求解 $Ax=b$:

# In[18]:

A = A.tocsr()

b = rand(1000)

x = spsolve(A, b)

# 转化成正常数组之后求解:

# In[19]:

x_ = solve(A.toarray(), b)

# 查看误差:

# In[20]:

err = norm(x-x_)

err

# ## sparse.find 函数

# 返回一个三元组,表示稀疏矩阵中非零元素的 `(row, col, value)`:

# In[22]:

from scipy import sparse

row, col, val = sparse.find(C)

print(row, col, val)

# ## sparse.issparse 函数

# 查看一个对象是否为稀疏矩阵:

# In[23]:

sparse.issparse(B)

# 或者

# In[24]:

sparse.isspmatrix(B.todense())

# 还可以查询是否为指定格式的稀疏矩阵:

# In[25]:

sparse.isspmatrix_coo(B)

# In[26]:

sparse.isspmatrix_csr(B)

胶水语言博大精深,

本主只得一二为新人带路,

新手可查阅历史目录:yeayee:Python数据分析及可视化实例目录​zhuanlan.zhihu.com

最后,别只收藏不关注哈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/446063.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux加密框架 crypto 算法管理 - 应用角度讲解加密框架的运行流程

参考链接 Linux加密框架的应用示例(一)_家有一希的博客-CSDN博客 本文大纲 本节将从应用角度说明加密框架的运行流程,包括加密框架如何管理算法、如何动态创建算法,应用模块如何创建算法实例、如何通过算法实例调用算法接口等。…

java 累进计费率计算_设计费400万,缴纳所得税100万,如何筹划

很多公司老板都会把利润放在第一位,照理说这是没错的,公司要盈利才能继续经营下去。我国有很多针对小微企业的政策,盈利不高的情况下,基本不会去考虑纳税问题,也没有多少税收压力。但是对一些暴利的服务型行业、软件设…

linux加密框架 crypto 算法管理 - 哈希算法应用实例

参考链接 Linux加密框架应用示例(二)_家有一希的博客-CSDN博客linux加密框架 crypto 算法管理 - 应用角度讲解加密框架的运行流程_CHYabc123456hh的博客-CSDN博客 在应用模块中创建并初始化哈希算法实例 假设某个SA配置使用的认证算法为"hmac(md5…

guido python正式发布年份_Python语言适合哪些领域的计算问题? (1.3分)_学小易找答案...

【单选题】关于Python中的复数,下列说法错误的是 (1.3分)【多选题】药物作用的基本规律包括?【单选题】Python 中,以下哪个赋值操作符是错误的? (1.3分)【单选题】哪个选项是下面代码的执行结果? s "abcd1234" print ( s . find ( "cd" )) (1.3分)【填…

Linux加密框架 crypto crypto_larval | crypto_larval_alloc | __crypto_register_alg 介绍

参考链接 Lniux加密框架中的主要数据结构(五)_家有一希的博客-CSDN博客crypto_larval struct crypto_larval {struct crypto_alg alg;struct crypto_alg *adult;struct completion completion;u32 mask; };结构体名叫 crypto_larval (算法幼…

好玩的脚本代码大全_Github | 推荐一个Python脚本集合项目

点击上方"蓝字"关注我们Python大数据分析记录 分享 成长用python写小脚本是一件好玩的事情,因为不是个大活儿,而且能解决眼边前十分繁琐的事情,这种轻松且便宜的代码颇受人民群众的欢迎~有点生活小妙招的意味大家较为熟知的脚本…

linux加密框架 crypto 算法管理 - 算法查找接口

参考链接 Linux加密框架的算法管理(二)_家有一希的博客-CSDN博客linux加密框架 crypto 算法管理 - 算法查找接口 crypto_find_alg_CHYabc123456hh的博客-CSDN博客linux加密框架 crypto 算法管理 - 算法查找接口 crypto_alg_mod_lookup_CHYabc123456hh的…

python中以下关于列表描述错误的_10. 以下关于列表操作的描述,错误的是:_学小易找答案...

【单选题】Python 语句 a1211.21 print(type(a)) 的输出结果为( )【单选题】Python语句序列"s1 [4, 5, 6]; s2 s1; s1[1]0; print(s2)"的运行结果是( )。【填空题】Python语句print(%d%%%d%(3/2, 3%2))的运行结果是( 1 )。【单选题】python语句print(type(123))的数…

写论文注意事项

参考链接 给研究生修改了一篇论文后,该985博导几近崩溃…… 重点分析 摘要与结论几乎重合 这一条是我见过研究生论文中最常出现的事情,很多情况下,他们论文中摘要部分与结论部分重复率超过70%。对于摘要而言,首先要用一小句话引…

xml模糊查询语句_2Mybatis学习笔记07:动态SQL语句(原创,转载请注明来源)

开发环境:硬件环境:Windows10JDK 1.8; 软件环境:JavaEclipseMybatismaven3.6tomcat8.0Postgresql 10.6; 用到的jar包: asm-3.3.1.jar cglib-2.2.2.jar commons-logging-1.1.1.jar javassist-3.17.1-GA.jar …

硬件密码组件的硬件结构、作用及实现应用设计

引 言 1 硬件密码组件的概念 密码技术是解决信息安全问题的核心技术。要实现信息的保密性、完整性、可控性和不可否认性等安全要求,都离不开密码技术的运用。在具体的信息安全系统中,密码技术的运用可以基于软件密码组件(简称为SCM&#xf…

sql倒序查询语句_SQL丨1.基本查询语句复习

此为自用查询语句1.selectSELECT column1,column2 FROM table1;常用的格式惯例:大写了SELECT和FROM,而将表名和列名小写;通常在列名中使用下划线,避免使用空格;在每个语句末尾添加分号;SQL不区分大小写。2.…

基于区块链的档案共享 项目启动

注意事项 已经备份了一个配置fabric的完整ubuntu系统,其需要注意的细节如下1,此镜像系统需要配置host文件,sudo vim /etc/hosts,添加如下内容127.0.0.1 orderer.example.com peer0.org1.example.com peer1.org1.example.c…

知道一点怎么设直线方程_【初中数学】反比例函数策略(二) ——构造方程法...

【相关阅读】【初中数学】反比例函数策略之一 ——数形结合反比例函数策略(二)——构造方程法(王 桥)上一次,咱们探讨了解决反比例函数的策略一——数形结合,本节课我们继续反比例函数的策略(二)——构造方程法。构造方程法,在《春季攻势》第…

音视频处理 C语言编译器

命令 gcc/clang -g -O2 -o test test.c -I ... -L ... -lgcc Linux环境下的命令;clang是MAC环境下的执行命令-g 输出文件中的调试信息-O 对输出文件进行指令优化-o 输出文件,可执行文件-I 指定头文件,大写的i 从-I 开始 是链接内容&#x…

wpf将文字转化为图形_将创新转化为实际应用

Worldsensing是全球公认的物联网先驱。这家位于西班牙巴塞罗那的技术供应商成立于2008年,为城市和传统行业提供运营情报。伊格纳西维拉霍萨纳(IgnasiVilajosana)是公司联合创始人兼首席执行官。伊格纳西拥有西班牙巴塞罗那大学物理学博士学位,还接受过美…

音视频处理 FFmpeg相关内容介绍 以及八大

FFmpeg的介绍 FFmpeg由Fabrice Bellard于2000年创建,由C和汇编语言进行开发FF -> Fast Forward 快进mpeg -> 标准化组织 Moving Pictures Experts Group使用到FFmpeg的开源项目gstreamer: a framework for streaming mediachromiummpv: Command line video pl…

python开发wince软件_Wince6.0应用开发:二、模拟器的使用

上一篇我们只是搭建我们的开发平台,那么下面我们结合之前安装的Wince6.0模拟器进行简单的开发,来了解一个操作流程一直写的东西都是很直白的,(*^__^*) 嘻嘻……一、连接上我们的模拟器1、打开vs2008,选择工具---->设备仿真器管…

python预测股票价格tushare_用tushare对股票进行简单分析

用tushare对股票进行简单分析(仅供交流学习)import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport tushare as ts#使用tushare 获取每只股票的行情数据df ts.get_k_data(‘600519’,start‘2008-01-01’)print(type(df))df.to_csv(‘600519.csv’)df …

音视频处理 基础开发 语言基础

基础开发内容 Vim编译器C语言回顾,重点介绍指针的概念Linux/MAC C语言的编译和调试Linux/MAC 常用开发工具介绍 Vim编译器 命令模式 拷贝 删除 粘贴等,通过i / a 等切换到编辑模式编辑模式 编辑字符,通过ESC进行切换常用命令 创建文件 vim …