【数分】Numpy入门及进阶(四)
【注意!!!】
本章主要讲解数据分析、挖掘入门及进阶知识
- 通过多篇文章【文字+案例】的形式系统化进行描述
数据分析专栏:https://blog.csdn.net/2201_75422674/category_12827743.html
- 大家喜欢可以订阅一下,不收费用的
前言:
- 本文主要从Numpy进阶进行描述,主要包括Numpy数组操作、Numpy 数学函数 以及Numpy 查找和排序 知识点进行描述
- 上一章:Numpy入门及进阶(三)
目录
1. Numpy数组操作
1.1 添加元素
1.2 插入元素
1.3 删除元素
1.4 数组变形reshape
1.5 数组迭代器
1.6 数组扁平处理
1.7 数组翻转
2. Numpy 数学函数
2.1 三角函数
2.2 舍入小数
2.3 算数函数
3. Numpy 查找和排序
3.1 查找索引
3.2 条件查找
3.3 快速排序
3.4 索引排序
3.5 部分排序
1. Numpy数组操作
1.1 添加元素
- numpy.append 函数在数组的末尾添加值。 追加操作会分配整个数组,并把原来的数组复制到新数组中
1. arr【需要插入的ndarry数组】
2. values【需要插入的值】
3. axis=None【默认为空】
- 注意:
1. 插入的维度要保证所有数组的长度是相同的
2. 如果没有指定轴,数组会被扁平处理
-
案例
1.2 插入元素
numpy.insert 函数在给定索引之前,沿给定轴在输入数组中插入值
1. array【指定的ndarry数组】
2. obj【指定位置(索引)】
3. values【插入值】
4. axis【轴向】
- 注意:
如果未提供轴,则输入数组会被展开
-
案例
1.3 删除元素
- numpy.delete 函数返回从输入数组中删除指定子数组的新数组。
1.arr
2.obj
3.axis
如果未提供轴参数,则输入数组将展开。
-
案例
1.4 数组变形reshape
- numpy.reshape 函数可以在不改变数据的条件下修改形状,格式如下:
numpy.reshape(arr, newshape, order='C')
- arr:要修改形状的数组
- newshape:整数或者整数数组,新的形状应当兼容原有形状
- order:'C' -- 按行,'F' -- 按列,'A' -- 原顺序,'k' -- 元素在内存中的出现顺序。
-
案例
1.5 数组迭代器
numpy.ndarray.flat: 专门做元素迭代,先展平,再循环
-
案例
1.6 数组扁平处理
numpy.ndarray.flatten() 返回一份展开的数组拷贝,对拷贝所做的修改不会影响原始数组
- 访问的是不同的内存
numpy.ravel() 展平的数组元素,返回一个展开的数组引用,修改会影响原始数组。
- 访问的是同一块内存
-
案例
1.7 数组翻转
numpy.transpose 对换数组的维度
- a【需要操作的数据】
- axes【轴向,如[1,0]: 把原来的1轴放到0的位置,把原来的0轴放到1的位置】
-
案例
2. Numpy 数学函数
2.1 三角函数
np.sin(), np.cos(), np.tan()
接收的参数是弧度,不是角度【注意】
-
案例
2.2 舍入小数
numpy.around()
- a: 数组
- decimals: 舍入的小数位数。 默认值为0。 如果为负,整数将四舍五入到小数点左侧的位置
-
案例
2.3 算数函数
加减乘除: add(),subtract(),multiply() 和 divide()【注意:也支持广播机制的】
- args【需要做操作的数组们】numpy.power() 幂运算,可以做开方运算
numpy.mode() 求余运算
np.log() 自然底数的对数 np.log2(), np.log10()
-
案例
3. Numpy 查找和排序
3.1 查找索引
numpy.argmax() 和 numpy.argmin()【默认返回符合的第一个出现的索引值】
-
案例
3.2 条件查找
numpy.where() 函数返回输入数组中满足给定条件的元素的索引
-
案例
3.3 快速排序
np.sort()与ndarray.sort()都可以,但有区别:
- np.sort()不改变输入【拷贝内存,不直接操作】
- ndarray.sort()本地处理,不占用空间,但改变输入【直接在内存上操作】numpy.sort() 函数返回输入数组的排序副本
-
案例
3.4 索引排序
numpy.argsort() 函数返回的是数组值从小到大的索引值。
-
案例
3.5 部分排序
np.partition(a,k)
- a【数据data】
有的时候我们不是对全部数据感兴趣,我们可能只对最小或最大的一部分感兴趣。
- 当k为正时,我们想要得到最小的k个数
- 当k为负时,我们想要得到最大的k个数
-
案例
创作不易,请点个赞哦~