Python 机器学习入门之NumPy库的使用--免费分享教程Python从入门到精通之30天快速学Python视频教程

系列文章目录

第一章 Python 机器学习入门之Pandas库的使用

第二章 Python 机器学习入门之NumPy库的使用

第二章 Python 机器学习入门之Series和DataFrame的创建、索引、切片、数据清洗、数据分析等
第二章 Python 机器学习入门之数据可视化
第二章 Python 机器学习入门之机器学习算法
第二章 Python 机器学习入门之实战项目



在这里插入图片描述

前言

NumPy是Python中一个重要的科学计算库,它提供了高效的多维数组对象和各种数学函数,可以方便地进行向量化计算和数组操作。在机器学习中,NumPy常常被用来进行数据处理和预处理,为后续的模型训练和评估做好准备。本文将介绍NumPy库的基本操作和方法,包括数组的创建和操作、常用函数、广播机制、随机数生成、文件操作、线性代数运算等。希望能够帮助读者更好地掌握NumPy的使用方法,为机器学习和数据分析提供帮助。

一、NumPy库简介

NumPy是Python中一个重要的科学计算库,它提供了高效的多维数组对象和各种数学函数,可以方便地进行向量化计算和数组操作。NumPy的主要功能包括数组的创建和操作、数组的统计和计算、数组的排序和搜索、随机数生成、文件操作、线性代数运算等。

NumPy库的作用

NumPy库的主要作用是提供高效的多维数组对象和各种数学函数,可以方便地进行向量化计算和数组操作。NumPy的数组对象可以存储任意类型的数据,包括整数、浮点数、复数、布尔值等,可以进行基本的数学运算、逻辑运算、比较运算等。

NumPy库的安装

在安装NumPy库之前,需要先安装Python环境。可以通过以下命令安装NumPy库:

复制pip install numpy

二、NumPy数组的创建和操作

NumPy数组是NumPy库中最重要的数据结构,它是一个多维数组对象,可以存储任意类型的数据。NumPy数组的创建和操作包括以下几个方面:

创建NumPy数组

可以使用NumPy库的array()函数创建NumPy数组,也可以使用其他函数创建特定类型的数组,如zeros()函数创建全零数组、ones()函数创建全一数组、empty()函数创建空数组等。

NumPy数组的属性

NumPy数组的属性包括数组的形状、数据类型、维度、元素个数等。可以使用shape属性获取数组的形状、dtype属性获取数组的数据类型、ndim属性获取数组的维度、size属性获取数组的元素个数等。

NumPy数组的索引和切片

NumPy数组的索引和切片与Python列表类似,可以使用整数索引、切片、布尔索引等方式获取数组的元素。可以使用冒号(:)表示切片范围,可以使用布尔数组表示条件索引。

NumPy数组的运算

NumPy数组支持基本的数学运算、逻辑运算、比较运算等,可以使用NumPy库中的各种函数进行数组运算。NumPy数组的运算包括元素级运算、矩阵运算、广播运算等。

import numpy as np

# 创建一维数组
a = np.array([1, 2, 3])
print(a)

# 创建二维数组
b = np.array([[1, 2, 3], [4, 5, 6]])
print(b)

# 创建全零数组
c = np.zeros((2, 3))
print(c)

# 创建全一数组
d = np.ones((2, 3))
print(d)

# 创建空数组
e = np.empty((2, 

在这里插入图片描述

三、NumPy的常用函数

NumPy库提供了丰富的函数和方法,可以方便地进行数组形状操作、数组元素操作、数组统计计算、数组排序和搜索等。常用的函数包括以下几个方面:

数组形状操作函数

数组形状操作函数包括reshape()函数、flatten()函数、transpose()函数、swapaxes()函数等,可以方便地改变数组的形状和维度。

数组元素操作函数

数组元素操作函数包括sum()函数、mean()函数、std()函数、var()函数等,可以方便地进行数组元素的统计计算。

数组统计函数

数组统计函数包括min()函数、max()函数、argmin()函数、argmax()函数等,可以方便地进行数组元素的统计计算和查找。

数组排序函数

数组排序函数包括sort()函数、argsort()函数、lexsort()函数、searchsorted()函数等,可以方便地进行数组元素的排序和搜索。
数组形状操作函数

数组形状操作函数包括reshape()函数、flatten()函数、transpose()函数、swapaxes()函数等,可以方便地改变数组的形状和维度。

复制import numpy as np

# reshape函数改变数组形状
a = np.array([[1, 2], [3, 4], [5, 6]])
b = a.reshape((2, 3))
print(b)

# flatten函数将多维数组转换为一维数组
c = np.array([[1, 2], [3, 4], [5, 6]])
d = c.flatten()
print(d)

# transpose函数将数组进行转置
e = np.array([[1, 2], [3, 4], [5, 6]])
f = e.transpose()
print(f)

# swapaxes函数交换数组的两个轴
g = np.array([[1, 2], [3, 4], [5, 6]])
h = np.swapaxes(g, 0, 1)
print(h)

数组元素操作函数

数组元素操作函数包括sum()函数、mean()函数、std()函数、var()函数等,可以方便地进行数组元素的统计计算。

# sum函数计算数组元素的和
a = np.array([1, 2, 3])
b = np.sum(a)
print(b)

# mean函数计算数组元素的平均值
c = np.array([1, 2, 3])
d = np.mean(c)
print(d)

# std函数计算数组元素的标准差
e = np.array([1, 2, 3])
f = np.std(e)
print(f)

# var函数计算数组元素的方差
g = np.array([1, 2, 3])
h = np.var(g)
print(h)

数组统计函数

数组统计函数包括min()函数、max()函数、argmin()函数、argmax()函数等,可以方便地进行数组元素的统计计算和查找。

复制import numpy as np

# min函数计算数组元素的最小值
a = np.array([1, 2, 3])
b = np.min(a)
print(b)

# max函数计算数组元素的最大值
c = np.array([1, 2, 3])
d = np.max(c)
print(d)

# argmin函数查找数组元素的最小值的索引
e = np.array([1, 2, 3])
f = np.argmin(e)
print(f)

# argmax函数查找数组元素的最大值的索引
g = np.array([1, 2, 3])
h = np.argmax(g)
print(h)

数组排序函数

数组排序函数包括sort()函数、argsort()函数、lexsort()函数、searchsorted()函数等,可以方便地进行数组元素的排序和搜索。

复制import numpy as np

# sort函数对数组元素进行排序
a = np.array([3, 1, 2])
b = np.sort(a)
print(b)

# argsort函数返回数组元素排序后的索引
c = np.array([3, 1, 2])
d = np.argsort(c)
print(d)

# lexsort函数对多个数组进行排序
e = np.array([3, 1, 2])
f = np.array([1, 2, 3])
g = np.lexsort((e, f))
print(g)

# searchsorted函数在有序数组中查找元素的插入位置
h = np.array([1, 2, 3])
i = np.searchsorted(h, 2)
print

四、NumPy的广播机制

广播机制是NumPy中一个非常重要的特性,它可以使不同形状的数组进行运算,而不需要进行显式的形状转换。广播机制的应用可以大大简化数组运算的代码,提高代码的效率。

广播机制的概念

广播机制是指NumPy在进行数组运算时,自动将不同形状的数组进行扩展,使它们具有相同的形状,然后进行运算。广播机制的规则包括两个方面:首先,NumPy会比较两个数组的形状,从末尾开始逐一比较,如果两个数组的形状相同或其中一个数组的形状为1,则认为它们可以进行广播;其次,NumPy会将形状为1的数组自动扩展为与另一个数组相同的形状。

广播机制的应用

广播机制的应用包括数组的加减乘除、数组的比较运算、数组的逻辑运算等。在进行数组运算时,可以使用广播机制简化代码,提高代码的效率。

五、NumPy的随机数生成

NumPy库提供了丰富的随机数生成函数,可以方便地生成各种类型的随机数。随机数生成函数包括以下几个方面:

随机数生成函数

随机数生成函数包括rand()函数、randn()函数、randint()函数、uniform()函数、normal()函数等,可以方便地生成各种类型的随机数。
NumPy库提供了多种随机数生成函数,包括生成随机整数、生成随机浮点数、生成随机数组等。这些函数可以方便地生成符合特定分布的随机数,为模拟和实验提供帮助。

import numpy as np

# randint函数生成指定范围内的随机整数
a = np.random.randint(0, 10, size=(3, 3))
print(a)

生成随机整数

可以使用NumPy库的random.randint()函数生成指定范围内的随机整数。
生成随机浮点数

可以使用NumPy库的random.rand()函数生成指定形状的随机浮点数,也可以使用random.randn()函数生成符合标准正态分布的随机浮点数。

随机数种子

随机数种子是指随机数生成器的初始状态,可以通过设置随机数种子来控制随机数的生成。可以使用NumPy库的random.seed()函数设置随机数种子。

import numpy as np

# rand函数生成指定形状的随机浮点数
a = np.random.rand(3, 3)
print(a)

# randn函数生成符合标准正态分布的随机浮点数
b = np.random.randn(3, 3)
print(b)

生成随机种子

可以使用NumPy库的random.seed()函数生成随机种子,用于控制随机数的生成。

import numpy as np

# seed函数生成随机种子
np.random.seed(0)
a = np.random.rand(3, 3)
print(a)

六、NumPy的文件操作

在这里插入图片描述

NumPy库提供了丰富的文件操作函数,可以方便地读取和写入各种类型的文件。文件操作函数包括以下几个方面:

读取文本文件

可以使用NumPy库的loadtxt()函数、genfromtxt()函数、fromfile()函数等读取文本文件中的数据。

import numpy as np

# 从CSV文件中读取数组数据
a = np.genfromtxt('data.csv', delimiter=',')
print(a)

# 将数组数据保存到CSV文件中
b = np.array([[1, 2], [3, 4]])
np.savetxt('data.csv', b, delimiter=',')

读取二进制文件

可以使用NumPy库的load()函数、loadtxt()函数、fromfile()函数等读取二进制文件中的数据。

import numpy as np

# 保存数组数据到文件中
a = np.array([[1, 2], [3, 4]])
np.save('data.npy', a)

# 从文件中读取数组数据
b = np.load('data.npy')
print(b)

写入文本文件

可以使用NumPy库的savetxt()函数、tofile()函数等将数据写入文本文件。

import numpy as np

# 保存数组数据到文本文件中
a = np.array([[1, 2], [3, 4]])
np.savetxt('data.txt', a)

# 从文本文件中读取数组数据
b = np.loadtxt('data.txt')
print(b)

写入二进制文件

可以使用NumPy库的save()函数、savez()函数等将数据写入二进制文件。

七、NumPy的线性代数运算

NumPy库提供了丰富的线性代数运算函数,可以方便地进行矩阵的创建、矩阵的运算、矩阵的分解等。线性代数运算函数包括以下几个方面:
NumPy库提供了多种线性代数运算函数,包括矩阵乘法、矩阵求逆、矩阵行列式、特征值和特征向量等。这些函数可以方便地进行线性代数运算,为数据分析和模型训练提供帮助。

矩阵乘法

可以使用NumPy库的dot()函数进行矩阵乘法运算。

import numpy as np

# 矩阵乘法运算
def matrix_multiply(a, b):
    c = np.dot(a, b)
    return c

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
c = matrix_multiply(a, b)
print(c)

矩阵的创建和操作

可以使用NumPy库的mat()函数、array()函数等创建矩阵对象,可以使用T属性、H属性等进行矩阵的转置、共轭等操作。
矩阵求逆

可以使用NumPy库的inv()函数求解矩阵的逆矩阵。

import numpy as np

# 求解矩阵的逆矩阵
def matrix_inverse(a):
    b = np.linalg.inv(a)
    return b

a = np.array([[1, 2], [3, 4]])
b = matrix_inverse(a)
print(b)

矩阵的运算

可以使用NumPy库的dot()函数、multiply()函数、inv()函数、solve()函数等进行矩阵的乘法、元素级乘法、矩阵求逆、矩阵求解等运算。

矩阵的分解

可以使用NumPy库的eig()函数、svd()函数、qr()函数等进行矩阵的特征值分解、奇异值分解、QR分解等。矩阵行列式

可以使用NumPy库的det()函数计算矩阵的行列式。

import numpy as np

# 计算矩阵的行列式
def matrix_determinant(a):
    b = np.linalg.det(a)
    return b

a = np.array([[1, 2], [3, 4]])
b = matrix_determinant(a)
print(b)

关注我,分享全网的学习资料哦

八、总结和展望

NumPy库是Python中一个非常重要的科学计算库,它提供了高效的多维数组对象和各种数学函数,可以方便地进行向量化计算和数组操作。本文介绍了NumPy库的基本操作和方法,包括数组的创建和操作、常用函数、广播机制、随机数生成、文件操作、线性代数运算等。NumPy库的优势在于它提供了高效的数组操作和数学函数,可以方便地进行科学计算和数据分析。未来,随着数据科学和人工智能的发展,NumPy库的应用前景将更加广阔。
网盘分享
Python从入门到精通之30天快速学Python视频教程
链接:https://pan.baidu.com/s/19FeaVPN_F0scxYR24e1MCg?pwd=c8qz
提取码:c8qz

猜你喜欢

转载自blog.csdn.net/CDB3399/article/details/130650487