前言:
今天你们对“pythonnumpy关系”大体比较着重,我们都需要了解一些“pythonnumpy关系”的相关知识。那么小编在网摘上汇集了一些对于“pythonnumpy关系””的相关文章,希望大家能喜欢,各位老铁们一起来学习一下吧!NumPy是Python的一个科学计算库,它提供了高效的多维数组操作和数学函数。NumPy是许多其他Python科学库的基础,因为它提供了快速的数值计算和数据处理能力。在本文中,我们将深入介绍NumPy的使用,包括数组创建、索引、切片、数学运算、线性代数等方面的内容。
数组创建
NumPy中最基本的对象是数组(array),它是一种多维数组。在NumPy中,数组可以通过多种方式创建。以下是一些常用的数组创建方式:
从Python列表创建数组
NumPy可以从Python列表(list)创建数组。以下是一个示例:
import numpy as npmy_list = [1, 2, 3, 4, 5]my_array = np.array(my_list)print(my_array)
输出:
[1 2 3 4 5]从元组创建数组
NumPy也可以从元组(tuple)创建数组。以下是一个示例:
import numpy as npmy_tuple = (1, 2, 3, 4, 5)my_array = np.array(my_tuple)print(my_array)
输出:
[1 2 3 4 5]使用zeros函数创建数组
使用zeros函数可以创建一个全是0的数组。以下是一个示例:
import numpy as npmy_array = np.zeros((3, 4))print(my_array)
输出:
[[0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.]]使用ones函数创建数组
使用ones函数可以创建一个全是1的数组。以下是一个示例:
import numpy as npmy_array = np.ones((3, 4))print(my_array)
输出:
[[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]]使用arange函数创建数组
使用arange函数可以创建一个等差数列数组。以下是一个示例:
import numpy as npmy_array = np.arange(0, 10, 2)print(my_array)
输出:
[0 2 4 6 8]使用linspace函数创建数组
使用linspace函数可以创建一个等间隔数列数组。以下是一个示例:
import numpy as npmy_array = np.linspace(0, 1, 5)print(my_array)
输出:
[0. 0.25 0.5 0.75 1. ]数组索引和切片
NumPy数组可以像Python列表一样进行索引和切片。以下是一些常用的数组索引和切片方式:
使用整数索引
可以使用整数索引获取数组中的元素。以下是一个示例:
import numpy as npmy_array = np.array([1, 2, 3, 4, 5])print(my_array[2])
输出:
3使用切片
可以使用切片获取数组中的元素。以下是一个示例:
import numpy as npmy_array = np.array([1, 2, 3, 4, 5])print(my_array[1:4])
输出:
[2 3 4]使用布尔索引
可以使用布尔索引获取数组中符合条件的元素。以下是一个示例:
import numpy as npmy_array = np.array([1, 2, 3, 4, 5])mask = my_array > 3print(my_array[mask])
输出:
[4 5]数学运算
NumPy提供了大量的数学函数,包括基本的算术运算、三角函数、指数函数、对数函数等。以下是一些常用的数学函数:
基本算术运算
NumPy提供了基本的算术运算,包括加、减、乘、除、求余等。以下是一个示例:
import numpy as npa = np.array([1, 2, 3, 4, 5])b = np.array([10, 20, 30, 40, 50])print(a + b)print(a - b)print(a * b)print(a / b)print(a % b)
输出:
[11 22 33 44 55][-9 -18 -27 -36 -45][ 10 40 90 160 250][0.1 0.1 0.1 0.1 0.1][1 2 3 4 5]三角函数
NumPy提供了多种三角函数,包括sin、cos、tan、arcsin、arccos、arctan等。以下是一个示例:
import numpy as npa = np.array([0, np.pi/2, np.pi])print(np.sin(a))print(np.cos(a))print(np.tan(a))
输出:
[0.0000000e+00 1.0000000e+00 1.2246468e-16][ 1.000000e+00 6.123234e-17 -1.000000e+00][ 0.00000000e+00 1.63312394e+16 -1.22464680e-16]指数函数和对数函数
NumPy提供了多种指数函数和对数函数,包括exp、exp2、log、log2等。以下是一个示例:
import numpy as npa = np.array([1, 2, 3])print(np.exp(a))print(np.exp2(a))print(np.log(a))print(np.log2(a))
输出:
[ 2.71828183 7.3890561 20.08553692][2. 4. 8.][0. 0.69314718 1.09861229][0. 1. 1.5849625]线性代数
NumPy也提供了丰富的线性代数函数。以下是一些常用的线性代数函数:
矩阵乘法
NumPy提供了矩阵乘法运算。以下是一个示例:
import numpy as npa = np.array([[1, 2], [3, 4]])b = np.array([[5, 6], [7, 8]])print(np.matmul(a, b))
输出:
[[19 22] [43 50]]矩阵求逆
NumPy提供了矩阵求逆运算。以下是一个示例:
import numpy as npa = np.array([[1, 2], [3, 4]])print(np.linalg.inv(a))
输出:
[[-2. 1. ] [ 1.5 -0.5]]特征值和特征向量
NumPy提供了特征值和特征向量的计算函数。以下是一个示例:
import numpy as npa = np.array([[1, 2], [3, 4]])w, v = np.linalg.eig(a)print(w)print(v)
输出:
[-0.37228132 5.37228132][[-0.82456484 -0.41597356] [ 0.56576746 -0.90937671]]示例代码
下面是一个完整的使用NumPy的示例代码,包括数组创建、索引、切片、数学运算、线性代数等方面的内容:
import numpy as np# 从Python列表创建数组my_list = [1, 2, 3, 4, 5]my_array = np.array(my_list)print(my_array)# 从元组创建数组my_tuple = (1, 2, 3, 4, 5)my_array = np.array(my_tuple)print(my_array)# 使用zeros函数创建数组my_array = np.zeros((3, 4))print(my_array)# 使用ones函数创建数组my_array = np.ones((3, 4))print(my_array)# 使用arange函数创建数组my_array = np.arange(0, 10, 2)print(my_array)# 使用linspace函数创建数组my_array = np.linspace(0, 1, 5)print(my_array)# 使用整数索引my_array = np.array([1, 2, 3, 4, 5])print(my_array[2])# 使用切片my_array = np.array([1, 2, 3, 4, 5])print(my_array[1:4])# 使用布尔索引my_array = np.array([1, 2, 3, 4, 5])mask = my_array > 3print(my_array[mask])# 基本算术运算a = np.array([1, 2, 3, 4, 5])b = np.array([10, 20, 30, 40, 50])print(a + b)print(a - b)print(a * b)print(a / b)print(a % b)# 三角函数a = np.array([0, np.pi/2, np.pi])print(np.sin(a))print(np.cos(a))print(np.tan(a))# 指数函数和对数函数a = np.array([1, 2, 3])print(np.exp(a))print(np.exp2(a))print(np.log(a))print(np.log2(a))# 矩阵乘法a = np.array([[1, 2], [3, 4]])b = np.array([[5, 6], [7, 8]])print(np.matmul(a, b))# 矩阵求逆a = np.array([[1, 2], [3, 4]])print(np.linalg.inv(a))# 特征值和特征向量a = np.array([[1, 2], [3, 4]])w, v = np.linalg.eig(a)print(w)print(v)
输出:
[1 2 3 4 5][1 2 3 4 5][[0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.]][[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]][0 2 4 6 8][0. 0.25 0.5 0.75 1. ]3[2 3 4][4 5][11 22 33 44 55][-9 -18 -27 -36 -45][ 10 40 90 160 250][0.1 0.1 0.1 0.1 0.1][1 2 3 4 5][0.0000000e+00 1.0000000e+00 1.2246468e-16][ 1.000000e+00 6.123234e-17 -1.000000e+00][ 0.00000000e+00 1.63312394e+16 -1.22464680e-16][ 2.71828183 7.3890561 20.08553692][2. 4. 8.][0. 0.69314718 1.09861229][0. 1. 1.5849625][[19 22] [43 50]][[-2. 1. ] [ 1.5 -0.5]][-0.37228132 5.37228132][[-0.82456484 -0.41597356] [ 0.56576746 -0.90937671]]结论
本文介绍了NumPy数组的创建、索引、切片、数学运算、线性代数等方面的内容。NumPy是Python科学计算的重要组件之一,具有强大的计算能力和高效的性能,是数据科学、机器学习、深度学习等领域必不可少的工具之一。
标签: #pythonnumpy关系