数据分析系列 之python中拓展库SciPy的使用

Python3.3 Scipy函数库:科学计算的强大工具 本文还有配套的精品资源,点击获取 简介:Python3.3的Scipy库是一个全面的科学计算函数库,它基于NumPy数组对象,并提供了数值算法和实用功能的广泛集合。它包括积分、优化、插值、信号处理、线性代数、稀疏矩阵、空间数据结构、统计、特殊函数和微分方程求解等模块。Scipy库是科学计算领域中不可或缺的工具,它与Matplotlib和Pandas等其他库结合,形成了强大的... 阅读详情

1 概述:
SciPy中的数据结构:
ndarray(N维数组)
Series(变长字典)
DataFrame(数据框)

常用的库:
NumPy:强大的ndarray对象和ufunc函数,比较适合线性代数和随机数处理等科学计算,具有有效的通用多维数据,可定义任意数据类型,无缝对接数据库。
Matplotlib:基于NumPy,是一个二维绘图库,可快速生成曲线图、直方图、散点图等形式的图。
pandas:基于SciPy和NumPy,具有高效的Series和DataFrame数据结构,具备高效的处理大数据集的切片功能,可提供优化库功能读写多种文件格式,如csv、hdf5等。

2 ndarray:
介绍:
维度(dimensions)称为轴(axis),轴的个数称为秩(rank)。

基本属性:
秩:ndarray.ndim
维度:ndarray.shape
元素总个数:ndarray.size
元素类型:ndarray.dtype
元素字节大小:ndarray.itemsize

通用函数:
ufunc函数—>是一种能对数组的每个元素进行操作的函数。很多是在C语言级别实现,计算速度比math快。

举例:

import numpy as np
aArray = np.array([(1,2,3),(4,5,6)])
输入:aArray
输出:array([(1,2,3),
			(4,5,6)])
			
bArray = np.linspace(1,2,5,endpoint=False)
输入:bArray
输出:[1.  1.2 1.4 1.6 1.8]

cArray = np.linspace(1,49,25,dtype=int)
输入:print(cArray)
输出:[ 1  3  5  7  9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49]

dArray = np.linspace(1,49,25,dtype=int)
输入:print(dArray)
输出:[ 1  3  5  7  9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 50]

#生成9*9的乘法口诀表
np.fromfunction(lambda i,j:(i+1)*(j+1),(9,9))

#选择列和行的数据
import numpy as np
x = np.array([[1,2,3],[4,5,6],[7,8,9]])
#选择第一列和第三列数据
print(x[:,[0,2]])
[[1 3]
 [4 6]
 [7 9]]
#选择第一行和第三行
print(x[::2])
[[1 2 3]
 [7 8 9]]
#选择第一列和第三列
print(x[:,::2])
[[1 3]
 [4 6]
 [7 9]]
#交换行
print(x[::-1])
[[7 8 9]
 [4 5 6]
 [1 2 3]]
#交换列
print(x[:,::-1])
[[3 2 1]
 [6 5 4]
 [9 8 7]]

#用函数改变
import numpy as np
x = np.array([[1,2,3],[4,5,6]])
#由两行三列变成三行两列
y = x.reshape(3,2)
或者:y = x.reshape(3,-1)
print(y)
[[1 2]
 [3 4]
 [5 6]]
print(x)
[[1 2 3]
 [4 5 6]]
#如果真正改变x?
x.resize(3,2)

x = np.array([1,2,3])
y = np.array([4,5,6])
#垂直方向上拼接
np.vstack((x,y))
[[1 2 3]
 [4 5 6]]
#水平方向上拼接 
np.hstack((x,y))
[1 2 3 4 5 6]

x = np.array([1,2,3])
y = np.array([[4,5,6],[7,8,9]])
#广播,x拓展
print(x+y)
[[ 5  7  9]
 [ 8 10 12]]

y = np.array([[4,5,6],[7,8,9]])
#沿列求和
print(y.sum(axis=0))
[11 13 15]
#沿行求和
print(y.sum(axis=1))
[15 24]
#最小值
print(y.min())
4
#最大值9的index
print(y.argmax())
5
#方差
print(y.var())
2.9166666666666665
#标准差
print(y.std())
1.707825127659933

x = np.array([[1,2],[3,4]])
#行列式
print(np.linalg.det(x))
-2.0000000000000004
#逆矩阵
print(np.linalg.inv(x))
[[-2.   1. ]
 [ 1.5 -0.5]]
#矩阵内积
print(np.dot(x,x))
[[ 7 10]
 [15 22]]

3 Series:
介绍:
类似于一维数组的对象,由数据和索引组成。

举例:

import pandas as pd
aSer = pd.Series(['A','B','C'],index=[1,2,3])
print(aSer)
#自带索引
1    A
2    B
3    C

x = {'A':1,'B':2,'C':3,'D':4}
y = ['A','B','C','D','E']
aSer = pd.Series(x,index=y)
#数据对齐
print(aSer)
A    1.0
B    2.0
C    3.0
D    4.0
E    NaN
dtype: float64
print(pd.isnull(aSer))
A    False
B    False
C    False
D    False
E     True
dtype: bool

4 DataFrame:
介绍:
二维表结构,含有一组有序的列,大体上可以看作共享一个index的Series集合。

import numpy as np
import pandas as pd
data = np.array([('A',1),('B',2),('C',3)])
frame = pd.DataFrame(data,index=range(1,4),columns=['Ac','Bc'])
print(frame)
   Ac Bc
1  A  1
2  B  2
3  C  3

#行索引
print(frame.index)
RangeIndex(start=1, stop=4, step=1)
#列索引
print(frame.columns)
Index(['Ac', 'Bc'], dtype='object')
#值
print(frame.values)
[['A' '1']
 ['B' '2']
 ['C' '3']]

#代表第0和1行的第1列
print(frame.iloc[:2,1])
1    1
2    2
Name: Bc, dtype: object

#对指定列进行修改
frame['Ac']='D'
print(frame)
   Ac Bc
1  D  1
2  D  2
3  D  3

#删除某一列
del frame['Ac']

#统计功能
name	pay
ABC		1000
DEF		2000
HIJ		3000
frame.pay.min()
1000
#运用矢量计算,比用for循环快
frame[frame.pay>=2000]
name	pay
DEF		2000
HIJ		3000

5 应用:基于字典做词频统计

poem = 'ABC DEF HIJ,ABC.'
poem_list = poem.split()
p_dict = {}
for item in poem_list:
	if item[-1] in ',.\'"':
		item = item[:-1]
	if item not in p_dict:
		p_dict[item] = 1
	else:
		p_dict[item] += 1
print(p_dict)
{'ABC': 1, 'DEF': 1, 'HIJ,ABC': 1}

6 应用:如何创建一个边界值为1,内部值为0的二维数组

import numpy as np
x = np.ones((5,5))
x[1:-1,1:-1] = 0
print(x)
[[1. 1. 1. 1. 1.]
 [1. 0. 0. 0. 1.]
 [1. 0. 0. 0. 1.]
 [1. 0. 0. 0. 1.]
 [1. 1. 1. 1. 1.]]

#可以包含全0和全1的数组
x = np.full((5,5),np.pi)
print(x)
[[3.14159265 3.14159265 3.14159265 3.14159265 3.14159265]
 [3.14159265 3.14159265 3.14159265 3.14159265 3.14159265]
 [3.14159265 3.14159265 3.14159265 3.14159265 3.14159265]
 [3.14159265 3.14159265 3.14159265 3.14159265 3.14159265]
 [3.14159265 3.14159265 3.14159265 3.14159265 3.14159265]]

#创建一个单位数组
x = np.eye(4)
print(x)
[[1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 1.]]
 #对角线上移一层
x = np.eye(4,k=1)
print(x)
[[0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 1.]
 [0. 0. 0. 0.]]

#布尔索引
np.where(x % 2 == 0, -1, x)

7 应用:矢量化和广播思想的应用

score = np.array([[1,2,3],[4,5,5]])
#把二维数组转成了一维数组
score_mean = score.mean(axis=1)
print(score)
score - score_mean
ValueError: operands could not be broadcast together with shapes (2,3) (2,) 
#需要将keepdims设置为true,才可以正常广播
score_mean = score.mean(axis=1,keepdims=True)
print(score)
print(score - score_mean)
[[-1.          0.          1.        ]
 [-0.66666667  0.33333333  0.33333333]]

参考资料:
https://www.icourse163.org/learn/NJU-1001571005?tid=1463102441&from=study#/learn/content?type=detail&id=1240380185&sm=1 用python玩转数据

以太网详解(一)-MAC/PHY/MII/RMII/GMII/RGMII基本介绍 网络设备中肯定离开不MAC和PHY,本篇文章将详细介绍下以太网中一些常见术语与接口。 MAC和PHY结构 从硬件角度来看以太网是由CPU,MAC,PHY三部分组成的,如下图示意: 上图中DMA集成在CPU,CPU,MAC,PHY并不是集成在同一个芯片内,由于PHY包含大量模拟器件,而MAC是典型的数字电路,考虑到芯片面积及模拟/数字混合架构的原因,**将MAC集成进CPU而将PHY留在片外,这种... 阅读详情

相关推荐

STM32F407 CanOpen主机实战:对象字典配置与多电机CIA402协议驱动详解

本文详细介绍了基于STM32F407的CanOpen主机开发实战,重点解析了对象字典的配置流程与多电机CIA402协议驱动方法。通过使用objdictedit工具配置SDO和PDO参数,并整合CanFestival协议栈,实现了对多个伺服电机的稳定同步控制。文章提供了从硬件连接到代码调试的完整指南,帮助开发者快速掌握工业现场的多轴运动控制技术。

plant的博客 529

python数据科学实战

它的意思是,你使用的scipy库中的mode函数¹²³在未来的版本(1.11.0)中会有一些行为上的变化,比如默认的keepdims参数会变成False,axis参数会被去掉,None值也不会被接受等。网格搜索的原理是遍历给定的参数网格中的所有可能组合³,而随机搜索的原理是从给定的参数分布中随机抽取一定数量的候选组合¹³。如果您的csv文件是用多个字符分隔的,比如空格、分号、斜杠、冒号或制表符等,您可以用方括号把这些字符包起来,并指定engine='python’参数。

kewei chen 1960

IP白名单校验

支持格式: 1、127.0.0.1 // 指定固定IP 2、127.0.0.1-127.0.0.128 // 可使用“-”来表示一个IP区间,支持跨IP段(一般不会出现这种情况,跨IP段则配置多个规则) 3、127.0.* // 2~4位IP段可...

2199

scipy的使用方法

Scipy是一个用于科学计算和数据分析的Python库,提供了许多高级的数学、科学和工程算法和函数。以上是使用Scipy的一些常见用法示例。更多详细信息,请参阅Scipy官方文档。

weixin_59246157的博客 1550

FPGA DMA IP核使用指南

数据传输:支持从源地址到目标地址的数据传输。中断管理:提供中断信号,便于CPU处理传输完成事件。传输控制:支持传输大小、方向和暂停/恢复控制。

weixin_66634995的博客 2428

使用CAPL实现DoIP刷写

本文介绍了使用CAPL实现基于DoIP协议的ECU刷写方法,包含完整源码。

qq_56033302的博客 2758

Python数据分析入门--SciPy库学习笔记

由于作者能力有限,对机器学习的了解也是刚刚入门,scipy库也是机器学习的冰山一角,愿热爱机器学习的小伙伴都能在学习探索这片天地中收获自己的快乐,最后提前祝各位小伙伴新年快乐!!!

m0_55202222的博客 2645

Webug4.0 打靶笔记

一、Webug 的安装 (1)基本信息 WeBug 名称定义为”我们的漏洞”靶场环境 ,基础环境是基于 PHP/mysql 制作搭建而成,中级环境与高级环境分别都是由互联网漏洞事件而收集的漏洞存在的操作环境。部分漏洞是基于Windows操作系统的漏洞所以将WeBug的web环境都装在了一个纯净版的Windows 2003的虚拟机中。在 webug3.0 发布后的四百多天 226安全团队终于在大年初二发布了 webug 的 4.0 版本。 (2)虚拟机的安装 最新超详细VMware虚拟机下载与安装_隐

m0_60716947的博客 6127

【数据分析与可视化】Scipy中常用函数及线性代数基本运算讲解(附源码 超详细)

【数据分析与可视化】Scipy中常用函数及线性代数基本运算讲解(附源码 超详细)

showswoller的博客 1722

ESP32与INMP441麦克风模块实现音频传输

ESP32是一款低成本、低功耗的物联网开发板,支持Wi-Fi和蓝牙双模通信,内置双核处理器,适合音频处理和实时数据传输。INMP441是一款高性能数字麦克风模块,支持I2S接口,可提供高精度音频数据采集(24-bit分辨率,64-100 dB SNR)。

走向CTO的路上... 2039

Linux 内核中 ARP 协议的全链路解析:从触发机制到物理层发送

核心设计思想按需解析:减少不必要的 ARP 请求,降低网络负载。分层解耦:协议栈各层(邻居子系统、Netfilter、驱动)职责分离,提高扩展性。ARP的核心作用是将IP映射为MAC地址,确保数据链路层能正确封装帧。其触发时机围绕“未知MAC地址需求”展开,覆盖通信初始化、缓存更新、网络变更及维护等多种场景。

数字人生 367

SciPy的使用例子

这些只是SciPy的一些例子。SciPy提供了各种函数和工具,可以帮助您处理和分析各种类型的科学和工程问题,从数值计算和优化到信号处理和图像处理。# 定义系数矩阵和常数向量。# 求解最小化函数问题。

嵌入式之斋 1245

Arduino ESP32S3 基础入门教学大纲

ESP32环境、Arduino

追梦 3544

Python拓展库初识

于是打算出一期关于Python部分拓展库的学习笔记,这篇是对一些库的大概的了解,后续会对其中的库的函数、使用等进行解释。用Theano就可以搭建起高效的神经网络,但这对大部分读者来说门槛还是相当高的,Kear便为此而生,它大大简化了搭建各种神经网络模型的步骤,允许普通用户轻松搭建并求解具有几百个输入节点的深层神经网络,而且定制的自由度非常大。Scipy包含的功能:最优化、线性代数、积分、差值、拟合、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解、其他科学与工程的常用计算。

albert_31415的博客 544

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Python数据分析必用的第三方扩展库

上述介绍的第三方扩展库是Python数据分析不可或缺的工具,它们提供了丰富的功能和方法,帮助用户快速、高效地处理和分析数据。在实际应用中,根据问题的具体需求,选择合适的库进行数据处理、统计分析、可视化和建模是非常重要的。这些扩展库不仅具有强大的功能,而且拥有一个庞大的社区支持,用户可以通过查阅文档、示例代码和参与讨论来解决问题和获取帮助。随着数据分析领域的不断进步和发展,这些库将不断更新和改进,为Python数据分析带来更多的便利和创新。

2301_76161259的博客 925

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Python数据分析常用的第三方扩展库

Python数据分析常用库 Numpy, Scipy, Matplotlib, Pandas, Scikit-Learn, Keras, Gensim. 通过pip安装 # 以numpy为例 pip install numpy Numpy 提供多维数组功能,以及对数据进行快速处理的函数。 Scipy 提供矩阵,以及大量基于矩阵运算的对象和函数。 功能:最优化、线性代数、积分、插值、拟合、信号处理和图像处理、常微分方程求解等。 参考链接: http//www.scipy.org/ Matplotlib

嘿梨的博客 1706

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【Python】数据分析结课复习(随便复复)D1

前几天书到了,翻了几下,发现被坑了 这两本书从目录来看几乎完全一样,真的是案例都是全部一样,无非就是把MATLAB换成了Python,真的没有诚意 说起来又非常想念徐圣兵老师,讲的数学模型课真的非常好,是我大学唯一有兴趣的课。 今天吃了感冒药特别困 不打字看,看了一二章 也就是差不多的内容。 第二章 Python的四种容器: List , Tuple , Dictionary ...

我其实发现我还是适合当厨师 541

Python主要数据预处理函数(interpolate/unique/isnull/notnull/PCA/random)

读《Python数据分析与挖掘实战》 函数名 函数功能 所属拓展库 interpolate 一维、高维数据插值 Scipy unique 去除数据中重复元素,得到单值元素列表,是对象的方法名 Pandas/Numpy nunique 查看数据去重后元素的数量 Pandas isnull 判断是否是空值 Pandas notnull 判断是否非空值 Pandas ...

小白tree的博客 1619

python扩展库用于科学计算的有哪些_数据科学必备的十大 Python 库

​Python 已成为当今使用最广泛的编程语言之一,尤其是在数据科学领域。Python 是一种高性能的语言,易于学习和调试,并且具有广泛的库支持。这些库都有自己独特的功能,一些专注于数据挖掘,一些专注于数据可视化和神经网络。在解决数据科学任务和挑战时,数据爱好者、分析师、工程师和科学家正在利用 Python 的强大功能,来进行统计分析和建立预测模型。在本文中,我将讨论用于数据科学和机器学习的最有用...

weixin_39635657的博客 1708

认识Python

Python 是一种计算机脚本语言,何为脚本语言,是以文本格式存储,到调用时被计算机编译器进行编译后执行。 Python 出生于1991年,现在最新的版本为3.8.2,开源。 Python的应用领域 Python 作为一种解释性脚本语言,其主要的应用有 web网页internet开发:大中小型的web系统开发 科学计算和统计:科研领域内的数据分析和计算,NumPy、SciPy和mat...

chendubin123的博客 383

深度学习中用到的python包

其中用到的Python包有:  * numpy是使用Python进行科学计算的基础包。  * matplotlib是Python中著名的绘图库。  * h5py在Python提供读取HDF5二进制数据格式文件的接口,本次的训练及测试图片集是以HDF5储存的。  * PIL(Python Image Library)为Python提供图像处理功能。  * scipy基于NumPy来做高等数

xiaocui235的博客 3450

python-----人工智能数学实验课

人工智能数学实验课: # 人工智能数学知识实验 # math: python的标准库,提供一些常用的数学函数 # numpy: python的一个数值计算拓展库,主要用于处理线性代数,随机数生成,傅里叶变换等问题 # scipy : 主要用于统计,优化,插值,积分等问题的处理 from __future__ import absolute_import, division, print_fu...

厚积薄发的博客 595

2018:数据科学20个最好的Python库

作者 | ActiveWizards译者 | 婉清编辑 | 阿司匹林出品 | AI科技大本营(公众号ID:rgznai100)Python 在解决数据科学任务和挑战方...

AI科技大本营 7581

【Python】科学计算库Scipy简易入门

0.导语Scipy是一个用于数学、科学、工程领域的常用软件包,可以处理插值、积分、优化、图像处理、常微分方程数值解的求解、信号处理等问题。它用于有效计算Numpy矩阵,使Numpy和Scipy协同工作,高效解决问题。Scipy是由针对特定任务的子模块组成:模块名应用领域scipy.cluster向量计算/Kmeansscipy.constants物理和数学常量scipy.fftpack傅立叶变换s...

fengdu78的博客 5061

【Python三方库】Python之SciPy库的简介、安装、使用方法、示例代码、注意事项等详细攻略

Python之SciPy库的简介、安装、使用方法、示例代码、注意事项等详细攻略

科技改变人类,技术成就未来 1万+

Scipy科学计算库---基础+进阶语法

一、快捷命令 import numpy as np shift+enter   &n

樱花落瓣 2363
上一篇: 数据分析系列 之python中集合内容介绍
下一篇: 数据分析系列 之python中便捷数据的获取(数据获取补充)
琅晓琳
博客等级 码龄10年 26粉丝 104原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值