NumPy是Python的一个科学计算库,它提供了高效的多维数组操作和数学函数。NumPy是许多其他Python科学库的基础,因为它提供了快速的数值计算和数据处理能力。在本文中,我们将深入介绍NumPy的使用,包括数组创建、索引、切片、数学运算、线性代数等方面的内容。
创新互联是一家专业的成都网站建设公司,我们专注成都做网站、网站设计、网络营销、企业网站建设,卖链接,广告投放平台为企业客户提供一站式建站解决方案,能带给客户新的互联网理念。从网站结构的规划UI设计到用户体验提高,创新互联力求做到尽善尽美。
NumPy中最基本的对象是数组(array),它是一种多维数组。在NumPy中,数组可以通过多种方式创建。以下是一些常用的数组创建方式:
NumPy可以从Python列表(list)创建数组。以下是一个示例:
import numpy as np
my_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 np
my_tuple = (1, 2, 3, 4, 5)
my_array = np.array(my_tuple)
print(my_array)
输出:
[1 2 3 4 5]
使用zeros函数可以创建一个全是0的数组。以下是一个示例:
import numpy as np
my_array = np.zeros((3, 4))
print(my_array)
输出:
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
使用ones函数可以创建一个全是1的数组。以下是一个示例:
import numpy as np
my_array = np.ones((3, 4))
print(my_array)
输出:
[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]
使用arange函数可以创建一个等差数列数组。以下是一个示例:
import numpy as np
my_array = np.arange(0, 10, 2)
print(my_array)
输出:
[0 2 4 6 8]
使用linspace函数可以创建一个等间隔数列数组。以下是一个示例:
import numpy as np
my_array = np.linspace(0, 1, 5)
print(my_array)
输出:
[0. 0.25 0.5 0.75 1. ]
NumPy数组可以像Python列表一样进行索引和切片。以下是一些常用的数组索引和切片方式:
可以使用整数索引获取数组中的元素。以下是一个示例:
import numpy as np
my_array = np.array([1, 2, 3, 4, 5])
print(my_array[2])
输出:
3
可以使用切片获取数组中的元素。以下是一个示例:
import numpy as np
my_array = np.array([1, 2, 3, 4, 5])
print(my_array[1:4])
输出:
[2 3 4]
可以使用布尔索引获取数组中符合条件的元素。以下是一个示例:
import numpy as np
my_array = np.array([1, 2, 3, 4, 5])
mask = my_array > 3
print(my_array[mask])
输出:
[4 5]
NumPy提供了大量的数学函数,包括基本的算术运算、三角函数、指数函数、对数函数等。以下是一些常用的数学函数:
NumPy提供了基本的算术运算,包括加、减、乘、除、求余等。以下是一个示例:
import numpy as np
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)
输出:
[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 np
a = 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 np
a = 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 np
a = 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 np
a = np.array([[1, 2], [3, 4]])
print(np.linalg.inv(a))
输出:
[[-2. 1. ]
[ 1.5 -0.5]]
NumPy提供了特征值和特征向量的计算函数。以下是一个示例:
import numpy as np
a = 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 > 3
print(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科学计算的重要组件之一,具有强大的计算能力和高效的性能,是数据科学、机器学习、深度学习等领域必不可少的工具之一。
分享标题:知道Numpy吗?它为什么是Python科学计算中不可或缺的一环
网址分享:http://www.shufengxianlan.com/qtweb/news43/29393.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联