- NumPy 教程
- NumPy - 首页
- NumPy - 简介
- NumPy - 环境配置
- NumPy 数组
- NumPy - Ndarray 对象
- NumPy - 数据类型
- NumPy 数组的创建和操作
- NumPy - 数组创建例程
- NumPy - 数组操作
- NumPy - 从现有数据创建数组
- NumPy - 从数值范围创建数组
- NumPy - 数组迭代
- NumPy - 数组重塑
- NumPy - 数组拼接
- NumPy - 数组堆叠
- NumPy - 数组分割
- NumPy - 数组扁平化
- NumPy - 数组转置
- NumPy 索引和切片
- NumPy - 索引与切片
- NumPy - 高级索引
- NumPy 数组属性和操作
- NumPy - 数组属性
- NumPy - 数组形状
- NumPy - 数组大小
- NumPy - 数组步幅
- NumPy - 数组元素大小
- NumPy - 广播
- NumPy - 算术运算
- NumPy - 数组加法
- NumPy - 数组减法
- NumPy - 数组乘法
- NumPy - 数组除法
- NumPy 高级数组运算
- NumPy - 交换数组轴
- NumPy - 字节交换
- NumPy - 复制与视图
- NumPy - 元素级数组比较
- NumPy - 数组过滤
- NumPy - 数组连接
- NumPy - 排序、搜索和计数函数
- NumPy - 数组搜索
- NumPy - 数组的并集
- NumPy - 查找唯一行
- NumPy - 创建日期时间数组
- NumPy - 二元运算符
- NumPy - 字符串函数
- NumPy - 数学函数
- NumPy - 统计函数
- NumPy - 矩阵库
- NumPy - 线性代数
- NumPy - Matplotlib
- NumPy - 使用 Matplotlib 绘制直方图
- NumPy - NumPy 的 I/O 操作
- NumPy 排序和高级操作
- NumPy - 数组排序
- NumPy - 沿轴排序
- NumPy - 使用花式索引排序
- NumPy - 结构化数组
- NumPy - 创建结构化数组
- NumPy - 操作结构化数组
- NumPy - 字段访问
- NumPy - 记录数组
- Numpy - 加载数组
- Numpy - 保存数组
- NumPy - 向数组追加值
- NumPy - 交换数组列
- NumPy - 向数组插入轴
- NumPy 处理缺失数据
- NumPy - 处理缺失数据
- NumPy - 识别缺失值
- NumPy - 删除缺失数据
- NumPy - 缺失数据插补
- NumPy 性能优化
- NumPy - 使用数组进行性能优化
- NumPy - 使用数组进行矢量化
- NumPy - 数组的内存布局
- Numpy 线性代数
- NumPy - 线性代数
- NumPy - 矩阵库
- NumPy - 矩阵加法
- NumPy - 矩阵减法
- NumPy - 矩阵乘法
- NumPy - 元素级矩阵运算
- NumPy - 点积
- NumPy - 矩阵求逆
- NumPy - 行列式计算
- NumPy - 特征值
- NumPy - 特征向量
- NumPy - 奇异值分解
- NumPy - 求解线性方程组
- NumPy - 矩阵范数
- NumPy 元素级矩阵运算
- NumPy - 求和
- NumPy - 求平均值
- NumPy - 求中位数
- NumPy - 求最小值
- NumPy - 求最大值
- NumPy 集合运算
- NumPy - 唯一元素
- NumPy - 交集
- NumPy - 并集
- NumPy - 差集
- NumPy 有用资源
- NumPy 编译器
- NumPy - 快速指南
- NumPy - 有用资源
- NumPy - 讨论
NumPy - 算术运算
NumPy 算术运算
NumPy 使得对数组执行算术运算变得简单易行。使用 NumPy,您可以对整个数组执行逐元素的加、减、乘、除运算,这意味着一个数组中的每个元素都由另一个数组中的对应元素进行运算。
当对不同形状的数组执行算术运算时,NumPy 使用称为广播的功能。它会自动调整数组的形状,以便可以执行运算,根据需要将较小的数组扩展到较大的数组。
基本的 NumPy 算术运算
NumPy 提供了几种在数组上逐元素执行的算术运算。这些包括加法、减法、乘法、除法和乘方。
NumPy 数组加法
NumPy 中的加法是逐元素进行的。当添加两个相同形状的数组时,会将对应的元素相加。当数组形状不同时,将应用广播规则。
import numpy as np # Creating two arrays a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) # Adding arrays result = a + b print(result)
以下是获得的输出:
[5 7 9]
NumPy 数组减法
NumPy 中的减法也是逐元素进行的。减去两个相同形状的数组将返回一个数组,其中每个元素都是输入数组中对应元素的差。
import numpy as np # Creating two arrays a = np.array([10, 20, 30]) b = np.array([1, 2, 3]) # Subtracting arrays result = a - b print(result)
这将产生以下结果:
[ 9 18 27]
NumPy 数组乘法
逐元素乘法使用 NumPy 中的 * 运算符执行。当乘以数组时,第一个数组的每个元素都乘以第二个数组中的对应元素。
import numpy as np # Creating two arrays a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) # Multiplying arrays result = a * b print(result)
以下是上述代码的输出:
[ 4 10 18]
NumPy 数组除法
使用 NumPy 中的 / 运算符执行逐元素除法。它返回一个数组,其中每个元素都是输入数组中对应元素的商。
import numpy as np # Creating two arrays a = np.array([10, 20, 30]) b = np.array([1, 2, 5]) # Dividing arrays result = a / b print(result)
获得的输出如下所示:
[10. 10. 6.]
NumPy 数组乘方运算
使用 NumPy 中的 ** 运算符逐元素执行乘方运算。基数组的每个元素都将提升到指数数组中对应元素的幂。
import numpy as np # Creating two arrays a = np.array([2, 3, 4]) b = np.array([1, 2, 3]) # Applying power operation result = a ** b print(result)
执行上述代码后,我们将获得以下输出:
[ 2 9 64]
我们还可以使用 numpy.power() 函数将数组的元素提升到指定的幂。此函数将第一个输入数组中的元素视为基数,并返回其提升到第二个输入数组中对应元素的幂的结果。
import numpy as np a = np.array([10,100,1000]) print ('Our array is:') print (a) print ('\n') print ('Applying power function:') print (np.power(a,2)) print ('\n') print ('Second array:') b = np.array([1,2,3]) print (b) print ('\n') print ('Applying power function again:') print (np.power(a,b))
它将产生以下输出:
Our array is: [ 10 100 1000] Applying power function: [ 100 10000 1000000] Second array: [1 2 3] Applying power function again: [ 10 10000 1000000000]
高级 NumPy 算术运算
NumPy 中的高级算术运算包括模运算、地板除法和乘方运算。这些运算处理更复杂的数学任务,并且与基本算术运算类似,都是逐元素执行的,但具有用于模算术和幂运算的附加功能。
NumPy 模运算
使用 NumPy 中的 % 运算符执行模运算。当应用于数组时,它会逐元素操作,这意味着第一个数组的每个元素都除以第二个数组中的对应元素,并计算余数。
import numpy as np # Creating two arrays a = np.array([10, 20, 30]) b = np.array([3, 7, 8]) # Applying modulo operation result = a % b print(result)
产生的结果如下:
[1 6 6]
我们还可以使用 numpy.mod() 函数计算两个数组之间或数组与标量之间的逐元素除法余数(模运算)。
此函数返回一个数组除以另一个数组或标量时的余数,对每个元素应用模运算。
import numpy as np a = np.array([10,20,30]) b = np.array([3,5,7]) print ('First array:') print (a) print ('\n') print ('Second array:') print (b) print ('\n') print ('Applying mod() function:') print (np.mod(a,b)) print ('\n') print ('Applying remainder() function:') print (np.remainder(a,b))
以下是上述代码的输出:
First array: [10 20 30] Second array: [3 5 7] Applying mod() function: [1 0 2] Applying remainder() function: [1 0 2]
NumPy 地板除法
NumPy 中的地板除法使用 // 运算符逐元素执行。它返回小于或等于除法结果的最大整数。
import numpy as np # Creating two arrays a = np.array([10, 20, 30]) b = np.array([3, 7, 8]) # Applying floor division result = a // b print(result)
我们得到如下所示的输出:
[3 2 3]
NumPy 具有广播功能的算术运算
广播允许 NumPy 通过虚拟扩展较小的数组以匹配较大数组的形状来对不同形状的数组执行算术运算。
NumPy 中的标量和数组运算
当标量与数组一起使用时,广播会扩展标量以匹配数组的形状,从而允许逐元素运算。
import numpy as np # Creating an array a = np.array([[1, 2, 3], [4, 5, 6]]) # Scalar value scalar = 10 # Adding scalar to array result = a + scalar print(result)
以下是获得的输出:
[[11 12 13] [14 15 16]]
NumPy 中不同形状的数组
当 NumPy 中使用两个不同形状的数组时,广播会根据广播规则对齐它们的形状。
import numpy as np # Creating arrays with different shapes a = np.array([[1, 2, 3], [4, 5, 6]]) b = np.array([10, 20, 30]) # Adding arrays result = a + b print(result)
这将产生以下结果:
[[11 22 33] [14 25 36]]
NumPy 聚合函数
NumPy 中的聚合函数执行数组上的求和、平均值、最小值和最大值等运算,通常使用广播来处理不同形状的数组。
NumPy 求和运算
NumPy 求和运算计算指定轴上或整个数组上(如果未指定轴)的数组元素之和。
import numpy as np # Creating an array a = np.array([[1, 2, 3], [4, 5, 6]]) # Summing elements result = np.sum(a) print(result) # Summing along axis 0 (columns) result_axis0 = np.sum(a, axis=0) print(result_axis0) # Summing along axis 1 (rows) result_axis1 = np.sum(a, axis=1) print(result_axis1)
以下是上述代码的输出:
21 [5 7 9] [ 6 15]
NumPy 平均值运算
NumPy 平均值运算计算指定轴上或整个数组上的数组元素的平均值(算术平均值)。
import numpy as np # Creating an array a = np.array([[1, 2, 3], [4, 5, 6]]) # Mean of elements result = np.mean(a) print(result) # Mean along axis 0 (columns) result_axis0 = np.mean(a, axis=0) print(result_axis0) # Mean along axis 1 (rows) result_axis1 = np.mean(a, axis=1) print(result_axis1)
获得的输出如下所示:
3.5 [2.5 3.5 4.5] [2. 5.]
NumPy 数组与复数的运算
以下函数用于对包含复数的数组执行运算。
numpy.real(): 返回复数类型参数的实部。
numpy.imag(): 返回复数类型参数的虚部。
numpy.conj(): 返回复共轭,通过改变虚部的符号获得。
numpy.angle(): 返回复数参数的角度。该函数具有度数参数。如果为真,则返回以度为单位的角度,否则角度以弧度为单位。
示例
在下面的示例中,我们使用 NumPy 函数:real()、imag()、conj() 和 angle() 对包含复数的数组执行运算。
import numpy as np a = np.array([-5.6j, 0.2j, 11. , 1+1j]) print ('Our array is:') print (a) print ('\n') print ('Applying real() function:') print (np.real(a)) print ('\n') print ('Applying imag() function:') print (np.imag(a)) print ('\n') print ('Applying conj() function:') print (np.conj(a)) print ('\n') print ('Applying angle() function:') print (np.angle(a)) print ('\n') print ('Applying angle() function again (result in degrees)') print (np.angle(a, deg = True))
它将产生以下输出:
Our array is: [ 0.-5.6j 0.+0.2j 11.+0.j 1.+1.j ] Applying real() function: [ 0. 0. 11. 1.] Applying imag() function: [-5.6 0.2 0. 1. ] Applying conj() function: [ 0.+5.6j 0.-0.2j 11.-0.j 1.-1.j ] Applying angle() function: [-1.57079633 1.57079633 0. 0.78539816] Applying angle() function again (result in degrees) [-90. 90. 0. 45.]