当前位置: 首页 > news >正文

监控安防的网站怎么做大学网站建设专业

监控安防的网站怎么做,大学网站建设专业,网站搜索引擎怎么做,域名关键词查询目录 ​编辑 1. NumPy安装 2. ndarray对象 1. 创建ndarray 1.从列表或元组创建#xff1a; 2.使用内置函数创建#xff1a; 2. ndarray属性 3. 数组运算 1. 基本运算 2. 数学函数 3.统计函数 4. 数组索引与切片 1. 一维数组索引与切片 2.多维数组索引与切片 5.…目录 ​编辑 1. NumPy安装 2. ndarray对象 1. 创建ndarray 1.从列表或元组创建 2.使用内置函数创建 2. ndarray属性 3. 数组运算 1. 基本运算 2. 数学函数 3.统计函数 4. 数组索引与切片 1. 一维数组索引与切片 2.多维数组索引与切片 5. 数组形状操作 1. 改变数组形状 2. 数组转置 6. 数组拼接与分割 1. 数组拼接 2. 数组分割  7. 广播机制 8. 常用函数 1. 数组生成函数 2.数学运算函数 9. 高级运算 1. 矩阵运算 2.统计运算 10. 实践案例 1. 数据分析案例 2. 数值计算案例 11. NumPy与其他库的结合 12. NumPy高级功能 1. 线性代数 2. 随机数生成 3. FFT快速傅里叶变换 13. NumPy性能优化 1. 向量化操作 2. 避免不必要的复制 ​编辑14. 总结 NumPy综合总结 1. 简介 2. 安装与导入 3. ndarray对象 4. 数组运算 5. 数组索引与切片 6. 数组形状操作 7. 数组拼接与分割 8. 广播机制 9. 常用函数 10. 高级运算 11. 实践案例 12. NumPy与其他库的结合 13. NumPy高级功能 14. NumPy性能优化 结论 专栏数学建模学习笔记 pycharm专业版免费激活教程见资源 python相关库的安装pandas,numpy,matplotlibstatsmodels 总篇【数学建模】—【新手小白到国奖选手】—【学习路线】 本篇属于第一卷——Numpy学习笔记 NumPyNumerical Python是Python编程语言的一个库支持大规模的多维数组与矩阵运算此外还提供了大量的数学函数库。NumPy在科学计算和数据分析领域有着广泛的应用。其核心是一个高效的多维数组对象称为ndarray。 1. NumPy安装 要使用NumPy库首先需要安装它。可以通过pip来安装 pip install numpy安装完成后可以通过以下方式导入NumPy库 import numpy as np2. ndarray对象 NumPy的核心是ndarray对象它是一个多维数组。它和Python的列表类似但提供了更高效的存储和运算功能。 1. 创建ndarray 可以通过多种方式创建ndarray对象 1.从列表或元组创建 import numpy as np# 从列表创建 a np.array([1, 2, 3]) print(a) # 输出[1 2 3]# 从嵌套列表创建 b np.array([[1, 2, 3], [4, 5, 6]]) print(b) # 输出 # [[1 2 3] # [4 5 6]]2.使用内置函数创建 import numpy as np# 创建全零数组 zeros_array np.zeros((2, 3)) print(zeros_array) # 输出 # [[0. 0. 0.] # [0. 0. 0.]]# 创建全一数组 ones_array np.ones((2, 3)) print(ones_array) # 输出 # [[1. 1. 1.] # [1. 1. 1.]]# 创建一个值为5的数组 full_array np.full((2, 3), 5) print(full_array) # 输出 # [[5 5 5] # [5 5 5]]# 创建单位矩阵 eye_array np.eye(3) print(eye_array) # 输出 # [[1. 0. 0.] # [0. 1. 0.] # [0. 0. 1.]]# 创建随机数组 random_array np.random.random((2, 3)) print(random_array) # 输出示例 #[[0.55827818 0.41537687 0.41252448] # [0.10251325 0.7435904 0.69922825]] 2. ndarray属性 ndarray对象有许多属性用于描述数组的形状、维度、数据类型等 import numpy as npa np.array([[1, 2, 3], [4, 5, 6]])print(数组维度, a.ndim) # 输出数组维度 2 print(数组形状, a.shape) # 输出数组形状 (2, 3) print(数组大小, a.size) # 输出数组大小 6 print(数组数据类型, a.dtype) # 输出数组数据类型 int32 print(数组元素大小, a.itemsize) # 输出数组元素大小 4 print(数组数据缓冲区, a.data) # 输出数组数据缓冲区 memory at 0x000001F49D4336B03. 数组运算 NumPy提供了丰富的数组运算功能可以对ndarray对象进行数学运算、逻辑运算、统计运算等。 1. 基本运算 可以对数组进行元素级别的运算 import numpy as npa np.array([1, 2, 3]) b np.array([4, 5, 6])# 加法 print(a b) # 输出[5 7 9]# 减法 print(a - b) # 输出[-3 -3 -3]# 乘法 print(a * b) # 输出[ 4 10 18]# 除法 print(a / b) # 输出[0.25 0.4 0.5 ]2. 数学函数 NumPy提供了大量的数学函数可以对数组进行逐元素的计算 import numpy as npa np.array([0, np.pi / 2, np.pi])# 三角函数 print(np.sin(a)) # 输出[0.000000e00 1.000000e00 1.224647e-16] print(np.cos(a)) # 输出[ 1.000000e00 6.123234e-17 -1.000000e00] print(np.tan(a)) # 输出[ 0.00000000e00 1.63312394e16 -1.22464680e-16]# 指数和对数 print(np.exp(a)) # 输出[ 1. 4.48168907 23.14069263] print(np.log(a)) # 输出[-inf 0. 1.14472989]注0的对数为负无穷 print(np.log10(a)) # 输出[-inf 0. 0.49714987]注0的对数为负无穷在使用NumPy计算数组中元素的对数时当数组中包含零元素时会出现“divide by zero encountered in log”或“divide by zero encountered in log10”这样的警告。这是因为对数函数在零值处无定义对数为负无穷-inf。 这些警告是由零值引起的它们在对数运算中会导致无穷大的结果。这在NumPy中是一个正常的行为提醒你注意输入数据中的零值。 如果你想避免这些警告可以在计算对数之前处理数组中的零值。你可以将零值替换为一个非常小的正数例如 np.finfo(float).eps浮点数的最小可表示正数以避免这些警告。以下是一个示例代码确保在替换零值之前数组已经正确更新。 import numpy as npa np.array([0, 1, 3]) # 替换数组中的零值为非常小的正数 a np.where(a 0, np.finfo(float).eps, a)print(np.log(a)) # 输出不会包含负无穷 print(np.log10(a)) # 输出不会包含负无穷确保代码执行顺序正确即先替换零值再计算对数。这段代码首先将数组 a 中的零值替换为 np.finfo(float).eps然后计算 a 的自然对数和常用对数这样就不会再出现除以零的警告了。 3.统计函数 NumPy提供了多种统计函数可以对数组进行统计运算 import numpy as npa np.array([[1, 2, 3], [4, 5, 6]])# 最小值 print(np.min(a)) # 输出1# 最大值 print(np.max(a)) # 输出6# 和 print(np.sum(a)) # 输出21# 均值 print(np.mean(a)) # 输出3.5# 标准差 print(np.std(a)) # 输出1.707825127659933# 中位数 print(np.median(a)) # 输出3.5# 累积和 print(np.cumsum(a)) # 输出[ 1 3 6 10 15 21]4. 数组索引与切片 NumPy提供了强大的数组索引与切片功能可以方便地访问和修改数组元素。 1. 一维数组索引与切片 import numpy as npa np.array([0, 1, 2, 3, 4, 5])# 索引 print(a[0]) # 输出0 输出第一个元素 print(a[-1]) # 输出5 输出最后一个元素# 切片 print(a[1:3]) # 输出[1 2] 输出第二个到第三个元素 print(a[:3]) # 输出[0 1 2] 输出前三个元素 print(a[3:]) # 输出[3 4 5] 输出第三个到最后一个元素 print(a[::2]) # 输出[0 2 4] 每隔一个元素输出一个元素2.多维数组索引与切片 import numpy as npa np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])# 索引 print(a[0, 0]) # 输出0 输出第一行第一列的元素 print(a[1, -1]) # 输出5 输出第二行最后一个元素# 切片 print(a[:2, 1:3]) # 输出 # [[1 2] # [4 5]] 输出第一行到第二行第二列到第三列的元素print(a[::2, ::2]) # 输出 # [[0 2] # [6 8]] 每隔一行一列输出一个元素5. 数组形状操作 NumPy提供了多种函数来改变数组的形状。 1. 改变数组形状 import numpy as npa np.array([[1, 2, 3], [4, 5, 6]])# 改变形状 print(a.reshape(3, 2)) # 输出 # [[1 2] # [3 4] # [5 6]]print(a.flatten()) # 将数组展平成一维 输出[1 2 3 4 5 6]2. 数组转置 import numpy as npa np.array([[1, 2, 3], [4, 5, 6]])# 转置 print(a.T) # 输出 # [[1 4] # [2 5] # [3 6]]6. 数组拼接与分割 NumPy提供了拼接与分割数组的函数。 1. 数组拼接 import numpy as npa np.array([[1, 2], [3, 4]]) b np.array([[5, 6]])# 垂直拼接 print(np.vstack((a, b))) # 输出 # [[1 2] # [3 4] # [5 6]]# 水平拼接 print(np.hstack((a, b.T))) # 输出 # [[1 2 5] # [3 4 6]]2. 数组分割  import numpy as npa np.array([[1, 2, 3], [4, 5, 6]])# 水平分割 print(np.hsplit(a, 3)) # 输出[array([[1], [4]]), array([[2], [5]]), array([[3], [6]])]# 垂直分割 print(np.vsplit(a, 2)) # 输出[array([[1, 2, 3]]), array([[4, 5, 6]])]7. 广播机制 NumPy的广播机制允许不同形状的数组进行算术运算。广播的规则是 如果数组的维度不同将维度较小的数组进行扩展直到两个数组的维度相同。如果两个数组在某个维度上的长度不同但其中一个长度为1则可以进行运算。如果两个数组在任何一个维度上的长度都不相同且都不为1则无法进行广播。 import numpy as npa np.array([1, 2, 3]) b np.array([[0], [1], [2]])# 广播机制 print(a b) # 输出 # [[1 2 3] # [2 3 4] # [3 4 5]]8. 常用函数 NumPy提供了许多常用函数以下列出一些常用函数的示例。 1. 数组生成函数 import numpy as np# 创建全零数组 print(np.zeros((2, 3))) # 输出 # [[0. 0. 0.] # [0. 0. 0.]]# 创建全一数组 print(np.ones((2, 3))) # 输出 # [[1. 1. 1.] # [1. 1. 1.]]# 创建指定值数组 print(np.full((2, 3), 5)) # 输出 # [[5 5 5] # [5 5 5]]# 创建单位矩阵 print(np.eye(3)) # 输出 # [[1. 0. 0.] # [0. 1. 0.] # [0. 0. 1.]]# 创建随机数组 print(np.random.random((2, 3))) # 输出示例 # [[0.97601061 0.54150051 0.71578887]#[0.44954629 0.74204514 0.63492767]]# 创建等差数组 print(np.arange(0, 10, 2)) # 输出[0 2 4 6 8]# 创建等比数组 print(np.linspace(0, 1, 5)) # 输出[0. 0.25 0.5 0.75 1. ]2.数学运算函数 import numpy as npa np.array([1, 2, 3, 4])# 求和 print(np.sum(a)) # 输出10# 求乘积 print(np.prod(a)) # 输出24# 求累积和 print(np.cumsum(a)) # 输出[ 1 3 6 10]# 求累积乘积 print(np.cumprod(a)) # 输出[ 1 2 6 24]9. 高级运算 1. 矩阵运算 NumPy提供了丰富的矩阵运算函数。 import numpy as npa np.array([[1, 2], [3, 4]]) b np.array([[5, 6], [7, 8]])# 矩阵乘法 print(np.dot(a, b)) # 输出 # [[19 22] # [43 50]]# 矩阵行列式 print(np.linalg.det(a)) # 输出-2.0000000000000004# 矩阵逆 print(np.linalg.inv(a)) # 输出 # [[-2. 1. ] # [ 1.5 -0.5]]# 矩阵特征值 print(np.linalg.eig(a)) # 输出特征值特征向量 # EigResult(eigenvaluesarray([-0.37228132, 5.37228132]), #eigenvectorsarray([[-0.82456484, -0.41597356],# [ 0.56576746, -0.90937671]]))2.统计运算 NumPy提供了多种统计运算函数。 import numpy as npa np.array([[1, 2, 3], [4, 5, 6]])# 均值 print(np.mean(a)) # 输出3.5# 中位数 print(np.median(a)) # 输出3.5# 方差 print(np.var(a)) # 输出2.9166666666666665# 标准差 print(np.std(a)) # 输出1.707825127659933# 最小值 print(np.min(a)) # 输出1# 最大值 print(np.max(a)) # 输出6# 百分位数 print(np.percentile(a, 50)) # 输出3.510. 实践案例 1. 数据分析案例 以下是一个简单的数据分析案例展示如何使用NumPy进行数据处理和分析。 import numpy as np# 生成模拟数据 data np.random.randn(1000)# 计算均值和标准差 mean np.mean(data) std_dev np.std(data)print(f均值: {mean}, 标准差: {std_dev}) # 示例输出均值: -0.015971063944354425, 标准差: 0.9670869531250885 # 计算数据的直方图 hist, bin_edges np.histogram(data, bins10) print(hist) # 示例输出[ 4 8 53 101 227 251 204 111 34 7] print(bin_edges) # 示例输出[-3.42803477 -2.79654529 -2.16505581 -1.53356634 -0.90207686 -0.27058738 # 0.36090209 0.99239157 1.62388104 2.25537052 2.88686 ]2. 数值计算案例 以下是一个简单的数值计算案例展示如何使用NumPy进行数值计算。 import numpy as np# 定义函数 def f(x):return x**2 - 4*x 4# 生成数据 x np.linspace(-10, 10, 100)# 计算函数值 y f(x)print(y) 示例输出 [1.44000000e02 1.39192327e02 1.34466279e02 1.29821855e021.25259055e02 1.20777880e02 1.16378329e02 1.12060402e021.07824100e02 1.03669421e02 9.95963677e01 9.56049383e019.16951331e01 8.78669524e01 8.41203959e01 8.04554637e017.68721559e01 7.33704724e01 6.99504132e01 6.66119784e016.33551678e01 6.01799816e01 5.70864198e01 5.40744822e015.11441690e01 4.82954801e01 4.55284155e01 4.28429752e014.02391593e01 3.77169677e01 3.52764004e01 3.29174574e013.06401388e01 2.84444444e01 2.63303745e01 2.42979288e012.23471074e01 2.04779104e01 1.86903377e01 1.69843893e011.53600653e01 1.38173656e01 1.23562902e01 1.09768391e019.67901235e00 8.46280992e00 7.32823181e00 6.27527803e005.30394858e00 4.41424344e00 3.60616264e00 2.87970615e002.23487399e00 1.67166616e00 1.19008264e00 7.90123457e-014.71788593e-01 2.35078053e-01 7.99918376e-02 6.52994592e-031.46923783e-02 1.04479135e-01 2.75890215e-01 5.28925620e-018.63585348e-01 1.27986940e00 1.77777778e00 2.35731048e003.01846750e00 3.76124885e00 4.58565453e00 5.49168452e006.47933884e00 7.54861749e00 8.69952046e00 9.93204775e001.12461994e01 1.26419753e01 1.41193756e01 1.56784002e011.73190491e01 1.90413223e01 2.08452199e01 2.27307418e012.46978880e01 2.67466585e01 2.88770534e01 3.10890725e013.33827160e01 3.57579839e01 3.82148760e01 4.07533925e014.33735333e01 4.60752984e01 4.88586879e01 5.17237017e015.46703398e01 5.76986022e01 6.08084889e01 6.40000000e01]11. NumPy与其他库的结合 NumPy通常与其他库结合使用如Pandas、Matplotlib、SciPy等。以下是一个简单的示例展示如何结合NumPy和Matplotlib进行数据可视化。 import numpy as np import matplotlib.pyplot as plt# 生成数据 x np.linspace(0, 10, 100) y np.sin(x)# 绘制数据 plt.plot(x, y) plt.xlabel(x) plt.ylabel(sin(x)) plt.title(Sin(x) Function) plt.show()运行结果 一幅展示sin(x)函数的折线图其中x轴表示从0到10的均匀分布的数据y轴表示sin(x)的值。  12. NumPy高级功能 1. 线性代数 NumPy提供了丰富的线性代数功能可以进行矩阵乘法、矩阵分解、特征值计算等。 import numpy as npa np.array([[1, 2], [3, 4]]) b np.array([[5, 6], [7, 8]])# 矩阵乘法 print(np.dot(a, b)) # 输出 # [[19 22] # [43 50]]# 矩阵行列式 print(np.linalg.det(a)) # 输出-2.0000000000000004# 矩阵逆 print(np.linalg.inv(a)) # 输出 # [[-2. 1. ] # [ 1.5 -0.5]]# 矩阵特征值 print(np.linalg.eig(a)) # 输出特征值特征向量 # (array([-0.37228132, 5.37228132]), # array([[-0.82456484, -0.41597356], # [ 0.56576746, -0.90937671]]))2. 随机数生成 NumPy提供了丰富的随机数生成功能可以生成各种分布的随机数。 import numpy as np# 生成均匀分布的随机数 print(np.random.rand(2, 3)) # 输出示例 # [[0.2177449 0.71579651 0.40282945] # [0.00823481 0.2378211 0.22714768]]# 生成标准正态分布的随机数 print(np.random.randn(2, 3)) # 输出示例 # [[-0.02638322 -0.29821612 -0.57163728] # [ 0.023793 -0.03624107 0.5007041 ]]# 生成指定区间的随机整数 print(np.random.randint(0, 10, size(2, 3))) # 输出示例 # [[9 0 6] # [4 5 5]] # 生成指定分布的随机数 print(np.random.normal(loc0, scale1, size(2, 3))) # 输出示例 #[[-0.05426652 0.00228263 -0.27759785]#[-0.47845462 2.04304079 -0.84451445]]3. FFT快速傅里叶变换 NumPy提供了快速傅里叶变换功能可以对数组进行快速傅里叶变换。 import numpy as npa np.array([0, 1, 2, 3])# 快速傅里叶变换 print(np.fft.fft(a)) # 输出 # [ 6.0.j -2.2.j -2.0.j -2.-2.j]# 逆快速傅里叶变换 print(np.fft.ifft(a)) # 输出 # [ 1.50.j -0.50.5j -0.50.j -0.5-0.5j]13. NumPy性能优化 NumPy通过其底层实现已经大大优化了性能但在实际应用中仍有许多技巧可以进一步提升性能。 1. 向量化操作 尽量使用向量化操作代替显式的Python循环以提高性能。 import numpy as npa np.arange(1000000)# 使用向量化操作 result a * 2 print(result[:10]) # 输出[ 0 2 4 6 8 10 12 14 16 18]2. 避免不必要的复制 在操作大数组时尽量避免不必要的数组复制操作以减少内存使用和提高性能。 import numpy as npa np.arange(1000000)# 避免不必要的复制 b a[:500000] print(b[:10]) # 输出[0 1 2 3 4 5 6 7 8 9]14. 总结 NumPy综合总结 本文通过详细的讲解和丰富的代码示例全面介绍了NumPy库的基础知识、常用功能和高级应用为初学者提供了深入理解和灵活使用NumPy的指南。 1. 简介 NumPyNumerical Python是Python编程语言的一个库专门用于大规模的多维数组与矩阵运算。NumPy是科学计算和数据分析的重要工具其核心是高效的多维数组对象ndarray。 2. 安装与导入 通过pip可以轻松安装NumPy库导入方式为 import numpy as np。 3. ndarray对象 ndarray对象是NumPy的核心可以通过列表、元组或内置函数创建。ndarray具有多种属性如维度、形状、大小、数据类型等方便用户对数组进行描述和操作。 4. 数组运算 NumPy提供了丰富的运算功能包括基本运算、数学函数和统计函数。用户可以对数组进行元素级别的加减乘除运算使用三角函数、指数和对数函数进行复杂计算还可以进行求和、均值、标准差等统计运算。 5. 数组索引与切片 NumPy的索引与切片功能强大可以方便地访问和修改数组元素。支持一维和多维数组的索引和切片操作使得数据操作更加灵活。 6. 数组形状操作 NumPy提供了改变数组形状的多种函数如reshape、flatten和转置函数使得用户可以轻松调整数组的结构以满足不同的计算需求。 7. 数组拼接与分割 NumPy支持数组的拼接与分割操作用户可以使用vstack和hstack进行垂直和水平拼接使用hsplit和vsplit进行数组分割。 8. 广播机制 广播机制允许不同形状的数组进行算术运算极大地方便了数组的操作和计算。理解广播机制的规则有助于更有效地使用NumPy进行数组运算。 9. 常用函数 NumPy提供了多种常用函数如创建全零数组、全一数组、单位矩阵、随机数组以及生成等差和等比数组的函数。这些函数简化了数组的生成过程。 10. 高级运算 NumPy的高级运算功能包括矩阵运算和统计运算支持矩阵乘法、行列式、矩阵逆和特征值计算提供了丰富的统计函数如均值、中位数、方差和标准差等。 11. 实践案例 本文通过数据分析和数值计算的实际案例展示了如何使用NumPy进行数据处理和分析以及进行数值计算帮助读者将理论知识应用于实践。 12. NumPy与其他库的结合 NumPy通常与Pandas、Matplotlib、SciPy等库结合使用。本文展示了如何结合NumPy和Matplotlib进行数据可视化进一步扩展了NumPy的应用范围。 13. NumPy高级功能 NumPy提供了线性代数、随机数生成和快速傅里叶变换等高级功能使得其在科学计算和工程应用中更加得心应手。 14. NumPy性能优化 通过向量化操作和避免不必要的复制用户可以进一步优化NumPy的性能提升代码运行效率。 结论 NumPy作为Python科学计算的基础库提供了强大的数组处理能力和丰富的数学函数广泛应用于数据分析、科学计算、工程应用等领域。通过本篇详细的介绍和示例读者可以全面掌握NumPy的使用方法并在实际项目中灵活应用从而大幅提升计算效率和编程体验。
http://www.dnsts.com.cn/news/106848.html

相关文章:

  • 设计网站 f在线免费网站模板
  • 自建微网站服务器泰安范镇孟庄村
  • 无障碍网站建设广告平台对接
  • 水果网站建设方案南宁网站怎么做seo
  • 上海定制网站开发电商网店开店全过程
  • 焦作网站建设价格优质的南昌网站设计
  • 天长做网站的做网站公司哪好
  • 宝安网站制作哪里好网络运营商远端无响应
  • 企业网站开发 流程网站建设案例的公司
  • 免备案php网站空间安阳网站公司
  • 专业做中文网站恭城网站建设
  • 著名的响应式网站有哪些wordpress 插件查看
  • 有哪些可以做推广的网站wordpress主题接口
  • 云网站制作的流程网站审核时间
  • 怎么样做网站代理商升阳广州做网站公司
  • 怎么做网站互换链接北京企业建设网站公司哪家好
  • 网站后期维护费用多少新冠数据实时更新
  • 太原深圳建设工程信息网站用dw怎么做登录页面的网站
  • 银川品牌网站建设公司广州效果图制作公司
  • 北京给网站做系统的公司三合一网站一般多少钱
  • 杨家坪网站建设宝安建网站公司
  • 优秀网站共分享厂房网络推广平台
  • 外贸建站源码wdcp装wordpress502
  • 哪里有南宁网站建设wordpress 3.0.1
  • 淘宝客做销量的网站有哪些推广软文代发
  • 广州哪里有网站开发河南关键词排名顾问
  • 烟台中企动力提供网站建设国外财经网站是怎么做的
  • 凯里网站设计哪家好广州网站建设加q.479185700
  • js做音乐网站北京企迪网站建设公司
  • 平台下载素材网站开发有关网站建设的图片