龙空技术网

知道Numpy吗?它为什么是Python科学计算中不可或缺的一环

你的老师父 687

前言:

今天你们对“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关系