pandas 阶段模块安装:
- conda activate SF130
- conda install numpy -y
- conda install pandas==1.5.3 -y
- conda install scipy -y
- conda install matplotlib -y
- conda install openpyxl -y
- conda install seabron==0.12.2 -y
依次执行上面后续的命令。
目录
1.numpy 概念
NumPy是Python中处理数学运算和数组操作的基础软件包。它提供了高性能的多维数组对象和相关工具,以便计算密集型的任务。NumPy中的数组可以是不同的大小和维度。它还提供了一组函数来操作这些数组。
当需要处理大量数据时,NumPy是一个非常有用的工具。它允许执行各种数学运算,如线性代数,傅里叶变换和随机数生成。由于其高效的C语言底层实现,NumPy可以显著提高Python代码的性能。
如果打算在Python中进行科学计算,那么了解NumPy是一个必要的步骤。它不仅是Python科学计算的核心库,还是许多其他库的基础,如SciPy和Pandas。
numpy比较低层,学习使用难度高;pandas更易上手。
2.numpy 安装
(已安装)
在mac终端使用ll实现ls -a功能:
vim .zshrc
3.numpy 和 python 性能对比
解决中文乱码:
mac打开访达,command + shift + g:
回车:
解决负号乱码:
command + s 保存。
重新执行这个代码:
4.ndarray对象
ndarray
是NumPy中最重要的对象之一。该对象是一个多维数组,可以容纳同类型的元素。ndarray
对象在NumPy中被用作处理大量数据的基础。
4.1.数据类型
数据类型 | 描述 |
bool_ | 布尔值(True或False),存储为1个字节 |
int_ | 默认整数类型(类似于C语言中的long,通常为int64或int32) |
intc | 相当于C语言中的int,通常为int32或int64 |
intp | 用于索引的整数类型,通常为int32或int64 |
int8 | 字节(-128到127) |
int16 | 整数(-32768到32767) |
int32 | 整数(-2147483648到2147483647) |
int64 | 整数(-9223372036854775808到9223372036854775807) |
uint8 | 无符号整数(0到255) |
uint16 | 无符号整数(0到65535) |
uint32 | 无符号整数(0到4294967295) |
uint64 | 无符号整数(0到18446744073709551615) |
float_ | float64类型的简写 |
float16 | 半精度浮点,5位指数,10位尾数 |
float32 | 单精度浮点,8位指数,23位尾数 |
float64 | 双精度浮点,11位指数,52位尾数 |
4.2.ndarray对象创建
4.2.1.python列表创建
4.2.2.python元组创建
4.2.3.arange函数创建
4.3.ndarray对象的属性
属性是事物的特征,其实就是有特殊含义的变量。函数是事物的行为。
ndarray.ndim
:数组的维数。ndarray.shape
:数组的形状。ndarray.size
:数组中元素的总数。ndarray.dtype
:数组中元素的类型。
4.4.ndarray索引和切片
4.4.1.索引
4.4.2.切片
4.5.ndarray广播
NumPy广播(broadcasting)是一种机制,它能够对不同形状的数组进行数学运算。对于不同形状的数组,广播会在缺失维度和大小相等的维度之间进行。如果两个数组的后缘维度(即从末尾开始算起的维度)的轴长相符或其中一方的长度为1,则它们能够广播。广播的具体规则如下:
- 如果两个数组的维度数不相同,则在维度较小的数组的左边添加一个长度为1的维度,直到两个数组的维度数相同为止。
- 如果两个数组在某个维度上的长度相同或者其中一个数组在该维度上的长度为1,则认为它们在该维度上是相容的。如果两个数组在所有维度上都是相容的,则它们能够使用广播。
- 如果两个数组在某个维度上的长度既不相同也不为1,则不能使用广播,两个数组无法进行数学运算。
- 优点:广播的应用可以减少循环的次数,从而提高计算的效率。例如,可以用广播实现一个矩阵和向量的点积。
- 缺点:对维度有限制要求。
在上面的例子中,数组b首先被广播为一个3x2的数组,然后与数组a进行逐元素的乘法运算。
5.numpy函数
5.1.numpy数组操作
函数 | 参数 | 描述 |
reshape | a:要修改形状的数组 newshape:整数或者整数数组,新的形状应当兼容原有形状 order:'C' -- 按行,'F' -- 按列,'A' -- 原顺序 | 不改变数据的条件下修改形状 |
ravel | arr:数组 order:'C' -- 按行,'F' -- 按列,'A' -- 原顺序,'K' -- 元素在内存中的出现顺序 | 返回展开数组 |
5.1.1.改变形状
5.1.2.展平数组
5.2.numpy统计函数
5.2.1.最大值、最小值
函数 | 参数 | 解释 |
np.amin(ndarray, axis) | ndarray:需要查找数组 asix:轴、1:按行找、0:按列找 | 计算数组中的元素沿指定轴的最小值 |
np.amax(ndarray, axis) | 同上 | 计算数组中的元素沿指定轴的最大值 |
5.2.2.最大值于最小值之差(极差)
极差——体现数据的集中程度
函数 | 参数 | 解释 |
np.ptp(ndarray, axis) | ndarray:需要查找数组 asix:轴、1:按行找、0:按列找 | 计算数组中元素最大值与最小值的差(最大值 - 最小值) |
5.2.3.百分位数
- 统计学术语,如果将一组数据从小到大排序,并计算相应的累计百分位,则某一百分位所对应数据的值就称为这一百分位的百分位数。
- 可表示为:一组n个观测值按数值大小排列。如,处于p%位置的值称第p百分位数。
函数 | 参数 | 解释 |
np.percentile(ndarray, q, axis) | ndarray:numpy数组 q:计算的百分位数,在 0 ~ 100 之间 axis:沿着它计算百分位数的轴 | 计算数组中指定轴的百分位数 |
- numpy计算百分位数原理:
- 计算数组元素的间距,9个元素有8个间距
- 计算20%分位数
到此点的间距为:8*20%=1.6 (a.b)个间距 (因为总共有八个间距) ,
从左至右数a个,在这里是1个距离,此时先取数字 ’2’ 作为第一个结果,
再计算这个数字 (在这里是 ’2’ ) 到下一个数字之间的值,也就是3-2=1,用这个结果*0.b 作为第二个结果与先前取的第一个结果相加,
最终结果为 2+1*0.6=2.6。
5.2.4.中位数
中位数(Median)又称中值,统计学中的专有名词,是按顺序排列的一组数据中居于中间位置的数,代表一个样本、种群或概率分布中的一个数值,其可将数值集合划分为相等的上下两部分。对于有限的数集,可以通过把所有观察值高低排序后找出正中间的一个作为中位数。如果观察值有偶数个,通常取最中间的两个数值的平均数作为中位数。
函数 | 参数 | 解释 |
np.median(ndarray, axis) | ndarray:需要查找数组 asix:轴、1:按行找、0:按列找 | 计算numpy数组的中位数 |
5.2.5.平均数
函数 | 参数 | 解释 |
np.mean(ndarray, axis) | ndarray:需要查找数组 asix:轴、1:按行找、0:按列找 | 函数返回数组中元素的算术平均值。 如果提供了轴,则沿其计算 |
5.2.6.方差
- 方差是在概率论和统计方差衡量随机变量或一组数据时离散程度的度量。
- 概率论中方差用来度量随机变量和其数学期望(即均值)之间的偏离程度。
- 统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数。
5.2.7.标准差
- 标准差是方差的算术平方根。标准差能反映一个数据集的离散程度。平均数相同的两组数据,标准差未必相同。
5.3.numpy其他函数
5.3.1.where函数
二分类(三目运算符)
5.3.2.select函数
多分类(多个并列的三目运算符)