Python可视化数据分析04、NumPy库使用
Python可视化数据分析04、NumPy库使用
📋前言📋
💝博客:【
】💝✍本文由在下【红目香薰】原创,首发于CSDN✍
🤗2022年最大愿望:【服务百万技术人次】🤗
💝Python初始环境地址:【
】💝
环境需求
环境:win10
开发工具:PyCharm Community Edition 2021.2
数据库:MySQL5.6
目录
NumPy概述
NumPy(Numerical Python)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
NumPy通常与SciPy【saipai】(Scientific Python)和Matplotlib(绘图库)一起使用。SciPy是一个开源的Python算法库和数学工具包。Matplotlib是Python编程语言及其数值数学扩展包NumPy的可视化操作界面。主要用于数学、科学和工程计算。
安装NumPy
网络慢的话就换镜像地址
Ndarray对象
Ndarray对象是用于存放同类型元素的多维数组,每个元素在内存中都有相同存储大小的区域。
Ndarray对象由以下内容组成:
- 一个指向数据(内存或内存映射文件中的一块数据)的指针。
- 数据类型或dtype,描述在数组中的固定大小值的格子。
- 一个表示数组形状(shape)的元组,表示各维度大小的元组。
- 一个跨度元组(stride),其中的整数指的是为了前进到当前维度下一个元素需要跨过的字节数
创建Ndarray对象
object:数组或嵌套的数列。
dtype:数组元素的数据类型,可选。
copy:对象是否需要复制,可选。
order:创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)。
subok:默认返回一个与基类类型一致的数组。
ndmin:指定生成数组的最小维度。
Demo1:基础操作
Demo2:数据类型对象dtype
类型 | 字符代码 |
---|---|
bool | ?, b1 |
int8 | b, i1 |
uint8 | B, u1 |
int16 | h, i2 |
uint16 | H, u2 |
int32 | i, i4 |
uint32 | I, u4 |
int64 | q, i8 |
uint64 | Q, u8 |
float16 | f2, e |
float32 | f4, f |
float64 | f8, d |
complex64 | F4, F |
complex128 | F8, D |
str | a, S(可以在S后面添加数字,表示字符串长度, 比如S3表示长度为三的字符串,不写则为最大长度) |
unicode | U |
object | O |
void | V |
NymPy数组
NumPy数组的维数称为秩(zhì)(rank),一维数组的秩为1,二维数组的秩为2,以此类推。
在NumPy中,每一个线性的数组称为是一个轴(axis),也就是维度(dimensions)。而轴的数量——秩,就是数组的维数。
属性 |
说明 |
ndarray.ndim |
秩,即轴的数量或维度的数量 |
ndarray.shape |
数组的维度,对于矩阵,即为n行m列 |
ndarray.size |
数组元素的总个数,相当于.shape中n*m的值 |
ndarray.dtype |
ndarray对象的元素类型 |
ndarray.itemsize |
ndarray对象中每个元素的大小,以字节为单位 |
ndarray.flags |
ndarray对象的内存信息 |
ndarray.real |
ndarray元素的实部 |
ndarray.imag |
ndarray元素的虚部 |
ndarray.data |
包含实际数组元素的缓冲区,由于一般通过数组的索引获取元素, 所以通常不需要使用这个属性。 |
示例1:
示例2:
示例3:
NumPy高级索引
除了对Ndarray数组进行切片操作和索引操作,还可以对Ndarray数组进行整数数组索引、布尔索引及花式索引。
数组索引:
布尔索引:
花式索引:
NumPy广播
NumPy迭代器对象
控制遍历顺序
使用numpy.nditer迭代器对象可以根据需要,采用列序优先或行序优先的方式控制遍历顺序。具体说明如下:
for x in np.nditer(a, order='F'):Fortran order,列序优先。
for x in np.nditer(a.T, order='C'):C order,行序优先
F风格:
C风格:
修改数组值:
NumPy字符串函数
NumPy中有专门处理字符串的函数,这些函数包含在numpy.char中。
NumPy字符串的函数的说明见下表:
函数 |
描述 |
add() |
对两个数组的逐个字符串元素进行连接 |
multiply() |
返回按元素多重连接后的字符串 |
center() |
居中字符串,并使用指定字符在左侧和右侧进行填充 |
capitalize() |
将字符串第一个字母转换为大写 |
title() |
将字符串的每个单词的第一个字母转换为大写 |
lower() |
数组元素转换为小写,它对每个元素调用str.lower()函数 |
upper() |
数组元素转换为大写,它对每个元素调用str.upper()函数 |
split() |
指定分隔符对字符串进行分割,并返回数组列表。默认情况下,分隔符为空格 |
splitlines() |
返回元素中的行列表,以换行符分割 |
strip() |
移除元素开头或者结尾处的特定字符 |
join() |
通过指定分隔符来连接数组中的元素 |
replace() |
使用新字符串替换字符串中的所有子字符串 |
encode() |
对数组中的每个元素调用str.encode()函数。默认编码是utf-8,可以使用标准Python库中的编解码器 |
decode() |
对编码的元素进行str.decode()解码 |
舍入函数
around()函数:返回指定数字的四舍五入值。
floor()函数:返回数字的下舍整数。
ceil()函数:返回数字的上入整数。
算术函数
add()函数:返回指定数字的加法。
subtract()函数:返回指定数字的减法。
multiply()函数:返回指定数字的乘法。
divide()函数:返回指定数字的除法。
reciprocal()函数:返回参数逐元素的倒数。
power()函数:将第一个输入数组中的元素作为底数,计算它与第二个输入数组中相应元素的幂。
mod()函数:计算输入数组中相应元素的相除后的余数
统计函数
amin()函数:用于计算数组中的元素沿指定轴的最小值。
amax()函数:用于计算数组中的元素沿指定轴的最大值。
ptp()函数:计算数组中元素最大值与最小值的差(最大值-最小值)。
median()函数:用于计算数组中元素的中位数(中值)。
mean()函数:返回数组中元素的算术平均值。
average()函数:根据在另一个数组中给出的各自的权重计算数组中元素的加权平均值
SciPy介绍
SciPy是一个用于数学、科学和工程领域的常用软件包,可以处理插值、积分、优化、图像处理、常微分方程数值的求解和信号处理等问题。
Numpy和SciPy协同工作,可以高效解决数据处理问题。
安装SciPy
模块名 |
应用领域 |
scipy.cluster |
向量计算/Kmeans |
scipy.constants |
物理和数学常量 |
scipy.fftpack |
傅立叶变换 |
scipy.integrate |
积分程序 |
scipy.interpolate |
插值 |
scipy.io |
数据输入输出 |
scipy.linalg |
线性代数程序 |
scipy.ndimagen |
维图像包 |
scipy.odr |
正交距离回归 |
scipy.optimize |
优化 |
scipy.signal |
信号处理 |
scipy.sparse |
稀疏矩阵 |
scipy.spatial |
空间数据结构和算法 |
scipy.special |
一些特殊的数学函数 |
scipy.stats |
统计 |
保存MATLAB文件
scipy. spatial模块
该模块的distance()函数用于计算两点之间的距离
在数学中,欧几里得距离或欧几里得度量是欧几里得空间中两点间“普通”(即直线)距离。使用这个距离,欧氏空间成为度量空间。相关联的范数称为欧几里得范数。较早的文献称之为毕达哥拉斯度量。
欧氏距离
这块很多时候需要具体问题具体分析,用的时候搜索公式就行了。
- 点赞
- 收藏
- 关注作者
评论(0)