Numpy的21个常用知识点(2)

简介: Numpy的21个常用知识点(2)

五、Numpy对数组按索引查询

三种索引方法:

  • 基础索引
  • 神奇索引
  • 布尔索引

5.1 基础索引

对于一维数组,和list一样,这里略。

对于二维数组,我们用行坐标和列坐标进行定位:

X[行,列]  其中行列可以是数字坐标,也可以是类似切片类型的数据。列可以不写,此时只对行操作。

96447814-120fc980-1245-11eb-938d-6ea408716c72.png

与列相关:

96447814-120fc980-1245-11eb-938d-6ea408716c72.png我们可以取切片进行多个数据的修改:

96447814-120fc980-1245-11eb-938d-6ea408716c72.png

5.2 神奇索引

我们前面用数字当索引,其实也可以用数组。

数字索引返回单个数据,数字切片索引返回从哪到哪的数据。而神奇索引返回数组对应下几个的值。

96447814-120fc980-1245-11eb-938d-6ea408716c72.png

实例:获取数组中最大的前N个数字

96447814-120fc980-1245-11eb-938d-6ea408716c72.png

对于二维数组,原理相同:

96447814-120fc980-1245-11eb-938d-6ea408716c72.png

5.3 布尔索引

根据True或False返回对应的数据。

96447814-120fc980-1245-11eb-938d-6ea408716c72.png

对于二维:

96447814-120fc980-1245-11eb-938d-6ea408716c72.png

还可以使用一些条件组合:

96447814-120fc980-1245-11eb-938d-6ea408716c72.png

六、Numpy中的数学统计函数

1、Numpy有哪些数学函数:

image.png

2、怎样实现按不同的axis计算

以上函数,都有一个参数叫做axis用于指定计算轴为行还是列,如果不指定,那么会计算所有元素的结果

3、实例:机器学习将数据进行标准化

A = (A - mean(A, axis=0)) / std(A, axis=0)

6.1 Numpy中的数学统计函数

96447814-120fc980-1245-11eb-938d-6ea408716c72.png

96447814-120fc980-1245-11eb-938d-6ea408716c72.png

6.2 Numpy的axis参数用途

96447814-120fc980-1245-11eb-938d-6ea408716c72.png

6.3 机器学习将数据标准化

96447814-120fc980-1245-11eb-938d-6ea408716c72.png

96447814-120fc980-1245-11eb-938d-6ea408716c72.png

96447814-120fc980-1245-11eb-938d-6ea408716c72.png

七、Numpy计算数组中满足条件的个数

需求:有一个非常大的数组比如1亿个数字,求出里面数字小于5000的数字数目

1. 使用numpy的random模块生成1亿个数字

96447814-120fc980-1245-11eb-938d-6ea408716c72.png

2. 使用Python原生语法实现

3. 使用Numpy向量化操作实现

4. 时间对比

八、给数组增加维度的三种方法

背景:

很多数据计算都是二维或三维的,对于一维的数据输入为了形状匹配,经常需升维变成二维


需要:

在不改变数据的情况下,添加数组维度;(注意观察这个例子,维度变了,但数据不变)  

原始数组:一维数组arr=[1,2,3,4],其shape是(4, ),取值分别为arr[0],arr[1],arr[2],arr[3]  

变形数组:二维数组arr[[1,2,3,4]],其shape实(1,4), 取值分别为a[0,0],a[0,1],a[0,2],a[0,3]


实操:

经常需要在纸上手绘数组的形状,来查看不同数组是否形状匹配,是否需要升维降维

3种方法:

  • np.newaxis:关键字,使用索引的语法给数组添加维度
  • np.expand_dims(arr, axis):方法,和np.newaxis实现一样的功能,给arr在axis位置添加维度
  • np.reshape(a, newshape):方法,给一个维度设置为1完成升维

方法1:np.newaxis关键字

方法2 :np.expand_dims方法

方法3:np.reshape方法

九、Numpy实现K折交叉验证的数据划分

背景:K折交叉验证

为什么需要这个?

在机器学习中,因为如下原因,使用K折交叉验证能更好评估模型效果:

1. 样本量不充足,划分了训练集和测试集后,训练数据更少;

2. 训练集和测试集的不同划分,可能会导致不同的模型性能结果;



K折验证是什么

K折验证(K-fold validtion)将数据划分为大小相同的K个分区。  

对每个分区i,在剩余的K-1个分区上训练模型,然后在分区i上评估模型。  

最终分数等于K个分数的平均值,使用平均值来消除训练集和测试集的划分影响;

96447814-120fc980-1245-11eb-938d-6ea408716c72.png

1. 模拟构造样本集合

2. 使用Numpy实现K次划分

结果如下:

十、Numpy数组合并操作

背景:在给机器学习准备数据的过程中,经常需要进行不同来源的数据合并的操作。


两类场景:

1. 给已有的数据添加多行,比如增添一些样本数据进去;

2. 给已有的数据添加多列,比如增添一些特征进去;


以下操作均可以实现数组合并:


np.concatenate(array_list, axis=0/1):沿着指定axis进行数组的合并

np.vstack或者np.row_stack(array_list):垂直vertically、按行row wise进行数据合并

np.hstack或者np.column_stack(array_list):水平horizontally、按列column wise进行数据合并1. 添加多行

2. 添加多列

十一、数组的乘法

按照两个相乘数组A和B的维度不同,分为以下乘法:


数字与一维/二维数组相乘;

一维数组与一维数组相乘;

二维数组与一维数组相乘;

二维数组与二维数组相乘;

numpy有以下乘法函数:


*符号或者np.multiply:逐元素乘法,对应位置的元素相乘,要求shape相同

@符号或者np.matmul:矩阵乘法,形状要求满足(n,k),(k,m)->(n,m)

np.dot:点积乘法

解释:点积,也叫内积,也叫数量积

两个向量a = [a1, a2,…, an]和b = [b1, b2,…, bn]的点积定义为:  

a·b=a1b1+a2b2+……+anbn。

1. 数字与数组相乘

2. 一维数组与一维数组相乘

3 . 二维数组和一维数组相乘

4. 二维数组与二维数组相乘

相关文章
|
存储 数据可视化 数据挖掘
Numpy的21个常用知识点(3)
Numpy的21个常用知识点(3)
Numpy的21个常用知识点(3)
|
编译器 TensorFlow 算法框架/工具
Numpy的21个常用知识点(1)
Numpy的21个常用知识点(1)
Numpy的21个常用知识点(1)
numpy的使用说明(二):这一章设计很多重要知识点(必看)(三)
numpy的使用说明(二):这一章设计很多重要知识点(必看)(三)
numpy的使用说明(二):这一章设计很多重要知识点(必看)(三)
numpy的使用说明(二):这一章设计很多重要知识点(必看)(二)
numpy的使用说明(二):这一章设计很多重要知识点(必看)(二)
numpy的使用说明(二):这一章设计很多重要知识点(必看)(二)
numpy的使用说明(二):这一章设计很多重要知识点(必看)(一)
numpy的使用说明(二):这一章设计很多重要知识点(必看)(一)
numpy的使用说明(二):这一章设计很多重要知识点(必看)(一)
|
1月前
|
机器学习/深度学习 数据处理 计算机视觉
NumPy实践宝典:Python高手教你如何轻松玩转数据处理!
【8月更文挑战第22天】NumPy是Python科学计算的核心库,专长于大型数组与矩阵运算,并提供了丰富的数学函数。首先需安装NumPy (`pip install numpy`)。之后可通过创建数组、索引与切片、执行数学与逻辑运算、变换数组形状及类型、计算统计量和进行矩阵运算等操作来实践学习。NumPy的应用范围广泛,从基础的数据处理到图像处理都能胜任,是数据科学领域的必备工具。
45 0
|
2月前
|
机器学习/深度学习 数据可视化 搜索推荐
Python在社交媒体分析中扮演关键角色,借助Pandas、NumPy、Matplotlib等工具处理、可视化数据及进行机器学习。
【7月更文挑战第5天】Python在社交媒体分析中扮演关键角色,借助Pandas、NumPy、Matplotlib等工具处理、可视化数据及进行机器学习。流程包括数据获取、预处理、探索、模型选择、评估与优化,以及结果可视化。示例展示了用户行为、话题趋势和用户画像分析。Python的丰富生态使得社交媒体洞察变得高效。通过学习和实践,可以提升社交媒体分析能力。
64 1
|
1天前
|
机器学习/深度学习 算法 数据可视化
8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征
特征工程是机器学习流程中的关键步骤,通过将原始数据转换为更具意义的特征,增强模型对数据关系的理解能力。本文重点介绍处理数值变量的高级特征工程技术,包括归一化、多项式特征、FunctionTransformer、KBinsDiscretizer、对数变换、PowerTransformer、QuantileTransformer和PCA,旨在提升模型性能。这些技术能够揭示数据中的潜在模式、优化变量表示,并应对数据分布和内在特性带来的挑战,从而提高模型的稳健性和泛化能力。每种技术都有其独特优势,适用于不同类型的数据和问题。通过实验和验证选择最适合的变换方法至关重要。
12 5
8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征
|
29天前
|
机器学习/深度学习 存储 算法
NumPy 与 SciPy:Python 科学计算库的比较
【8月更文挑战第30天】
71 5
|
30天前
|
存储 缓存 C语言