目录
一、前言
二、实验环境
三、NumPy
0. 多维数组对象(ndarray)
a. 多维数组的属性
1. 创建数组
a. 使用numpy.array函数:
b. 使用numpy.zeros函数
c. 使用numpy.ones函数
d. 使用numpy.arange函数
e. 使用numpy.linspace函数
f. 使用numpy.eye函数
g. 使用numpy.random模块
h. 使用numpy.full函数
i. 使用numpy.copy函数
j. 使用numpy.empty函数
k. 使用numpy.diag函数
l. 使用numpy.tile函数
m. 使用numpy.meshgrid函数
n. 使用numpy.fromfunction函数
o. 使用numpy.loadtxt函数
一、前言
Python是一种高级编程语言,由Guido van Rossum于1991年创建。它以简洁、易读的语法而闻名,并且具有强大的功能和广泛的应用领域。Python具有丰富的标准库和第三方库,可以用于开发各种类型的应用程序,包括Web开发、数据分析、人工智能、科学计算、自动化脚本等。
Python本身是一种伟大的通用编程语言,在一些流行的库(numpy,scipy,matplotlib)的帮助下,成为了科学计算的强大环境。本系列将介绍Python编程语言和使用Python进行科学计算的方法,主要包含以下内容:
- Python:基本数据类型、容器(列表、元组、集合、字典)、函数、类
- Numpy:数组、数组索引、数据类型、数组数学、广播
- Matplotlib:绘图,子图,图像
- IPython:创建笔记本,典型工作流程
二、实验环境
numpy | 1.21.6 | |
python | 3.7.16 |
- 运行下述命令检查Python版本
python --version
- 运行下述代码检查Python、NumPy版本
import sys
import numpy as npprint("Python 版本:", sys.version)
print("NumPy 版本:", np.__version__)
三、NumPy
NumPy(Numerical Python)是一个用于科学计算的Python库。它提供了一个强大的多维数组对象(ndarray),用于进行高效的数值运算和数据处理。Numpy的主要功能包括:
多维数组:Numpy的核心是ndarray对象,它是一个多维数组,可以存储同类型的元素。这使得Numpy非常适合处理向量、矩阵和其他多维数据结构。
数学函数:Numpy提供了许多常用的数学函数,如三角函数、指数函数、对数函数等。这些函数可以直接应用于整个数组,而无需编写循环。
广播(Broadcasting):Numpy支持不同形状的数组之间的运算,通过广播机制,可以对形状不同的数组进行逐元素的操作,而无需显式地编写循环。
线性代数运算:Numpy提供了丰富的线性代数运算函数,如矩阵乘法、求解线性方程组、特征值计算等。
随机数生成:Numpy包含了用于生成各种概率分布的随机数的函数,如均匀分布、正态分布、泊松分布等。
数据操作:Numpy提供了很多用于操作数组的函数,如切片、索引、排序、去重等。
Numpy广泛应用于科学计算、数据分析、机器学习等领域。它的高效性和便捷性使得它成为Python数据科学生态系统中不可或缺的组成部分。
0. 多维数组对象(ndarray)
NumPy的ndarray
对象是NumPy库中最重要的对象之一,也是进行科学计算的核心数据结构。ndarray
代表了一个多维的数组,可以存储相同类型的元素。
a. 多维数组的属性
ndarray.shape
:返回表示数组形状的元组,例如(2, 3)
表示2行3列的数组。ndarray.dtype
:返回数组中元素的数据类型,例如int
、float
、bool
等。ndarray.ndim
:返回数组的维度数,例如1表示一维数组,2表示二维数组。
1. 创建数组
a. 使用numpy.array
函数:
可以使用numpy.array
函数从Python列表或元组创建数组。
import numpy as np# 从列表创建一维数组
arr1 = np.array([1, 2, 3, 4, 5])# 从列表创建二维数组
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
b. 使用numpy.zeros
函数
可以使用numpy.zeros
函数创建指定形状的全零数组。
import numpy as np# 创建形状为(2, 3)的全零数组
zeros_arr = np.zeros((2, 3))
c. 使用numpy.ones
函数
可以使用numpy.ones
函数创建指定形状的全一数组。
import numpy as np# 创建形状为(3, 3)的全一数组
ones_arr = np.ones((3, 3))
d. 使用numpy.arange
函数
可以使用numpy.arange
函数创建等差数列数组。
import numpy as np# 创建从0到9的等差数列数组,步长为2
arange_arr = np.arange(0, 10, 2)
e. 使用numpy.linspace
函数
可以使用numpy.linspace
函数创建指定起始值、终止值和元素个数的等差数列数组。
import numpy as np# 创建从0到1的等差数列数组,包含5个元素
linspace_arr = np.linspace(0, 1, 5)
f. 使用numpy.eye
函数
可以使用numpy.eye
函数创建指定大小的单位矩阵。
import numpy as np# 创建3x3的单位矩阵
eye_arr = np.eye(3)
g. 使用numpy.random
模块
numpy.random
模块提供了多种随机数生成函数,可以用来创建具有随机值的数组。
import numpy as np# 创建形状为(2, 2)的随机数数组
random_arr = np.random.random((2, 2))# 创建形状为(3, 3)的随机整数数组(范围为0到9)
random_int_arr = np.random.randint(0, 10, (3, 3))
h. 使用numpy.full
函数
可以使用numpy.full
函数创建指定形状和填充值的数组。
import numpy as np# 创建形状为(2, 2)且填充值为7的数组
full_arr = np.full((2, 2), 7)
i. 使用numpy.copy
函数
可以使用numpy.copy
函数从现有数组创建一个副本。
import numpy as np# 创建arr的副本
arr_copy = np.copy(arr)
j. 使用numpy.empty
函数
可以使用numpy.empty
函数创建指定形状的未初始化数组,数组的元素值将是内存中的任意值。
import numpy as np# 创建形状为(2, 2)的未初始化数组
empty_arr = np.empty((2, 2))
k. 使用numpy.diag
函数
可以使用numpy.diag
函数创建对角矩阵或从给定数组的对角线元素创建数组。
import numpy as np# 创建3x3的对角矩阵,对角线元素为[1, 2, 3]
diag_arr = np.diag([1, 2, 3])# 从给定数组的对角线元素创建数组
arr = np.array([1, 2, 3])
diag_from_arr = np.diag(arr)
l. 使用numpy.tile
函数
可以使用numpy.tile
函数通过重复数组来创建新数组。
import numpy as np# 创建重复的一维数组
arr = np.array([1, 2, 3])
tiled_arr = np.tile(arr, 2)# 创建重复的二维数组
arr2d = np.array([[1, 2], [3, 4]])
tiled_arr2d = np.tile(arr2d, (2, 3))
m. 使用numpy.meshgrid
函数
可以使用numpy.meshgrid
函数创建一个多维坐标网格。
import numpy as np# 创建一个二维坐标网格
x = np.array([1, 2, 3])
y = np.array([4, 5])
X, Y = np.meshgrid(x, y)
n. 使用numpy.fromfunction
函数
可以使用numpy.fromfunction
函数根据元素的索引值创建数组。
import numpy as np# 创建一个形状为(3, 3)的数组,根据元素的索引值计算元素值
def func(x, y):return x + yarr = np.fromfunction(func, (3, 3))
o. 使用numpy.loadtxt
函数
可以使用numpy.loadtxt
函数从文本文件中加载数据创建数组。
import numpy as np# 从文本文件加载数据创建数组
arr = np.loadtxt('data.txt')
待补充