提取复数 NumPy 数组的实部和虚部
在 Python 中,我们可以分别使用数组的 real 和 imag 属性提取复数 NumPy 数组的实部和虚部。Numpy 是一个用于复杂计算的 Python 库,也提供对复数的支持。在本文中,我们将了解如何分别提取复数的实部和虚部。
理解 Numpy 中的复数
在 Numpy 中,我们使用 complex 数据类型将复数表示为实部和虚部的组合。我们可以使用 complex() 函数在 NumPy 中创建一个复数。
示例
在下面的示例中,我们通过两种方式创建一个复数 - 使用复数函数和使用 array() numpy 函数。 complex 函数创建一个复数,而 array() 函数创建一个复数列表。
import numpy as np # 创建一个复数 z = complex(3, 4) print(z) # 创建一个复数数组 a = np.array([complex(2, 3), complex(4, 5), complex(6, 7)]) print(a)
输出
(3+4j) [2.+3.j 4.+5.j 6.+7.j]
提取复数的实部和虚部
要提取复数的实部和虚部,我们将使用 numpy 的 real 和 imag 属性,newaxis()方法,以及下面示例中的 numpy.real() 和 numpy.imag() 函数。
方法 1:使用 numpy 的 real 和 imag 属性
numpy 数组的 real 和 imag 属性分别用于提取数组的实部和虚部。
算法
以下是使用 real 和 imag 属性提取 NumPy 复数数组的实部和虚部的算法 -
定义一个 NumPy 复数数组。
使用 real 属性提取数组中复数的实部。
使用 imag 属性提取数组中复数的虚部。
根据需要分别操作复数的实部和虚部。
根据需要组合操作后的实部和虚部。
语法
# extracting the real and imaginary parts of an array of complex numbers real_part = my_complex_array.real imag_part = my_complex_array.imag
此处,my_complex_array 是一个复数的 NumPy 数组,real_part 和 imag_part 分别是包含 my_complex_array 中复数的实部和虚部的数组。
示例
在下面的示例中,我们使用 numpy 的 array() 函数创建一个复数列表,然后分别使用 real 和 imag 属性提取每个复数的实部和虚部。然后使用 print() 函数打印得到的实部和虚部。
import numpy as np # 创建复数数组 a = np.array([complex(2, 3), complex(4, 5), complex(6, 7)]) # 提取实部和虚部 real_part = a.real imag_part = a.imag print("原始数组: ", a) print("实部: ", real_part) print("虚部: ", imag_part)
输出
原始数组:[2.+3.j 4.+5.j 6.+7.j] 实部:[2. 4. 6.] 虚部:[3. 5. 7.]
方法 2:使用 newaxis() 方法
newaxis() 方法允许我们为 NumPy 数组添加额外的维度。当应用于复数数组时,我们可以用它将实部和虚部分离到不同的维度中。
算法
定义一个复数的 NumPy 数组。
使用 newaxis() 为数组添加一个额外的维度。
使用 real 属性提取数组中复数的实部。
使用 imag 属性提取数组中复数的虚部。
根据需要分别操作复数的实部和虚部。
根据需要组合操作后的实部和虚部。
语法
import numpy as np # 假设 my_array 是任意形状的 NumPy 数组 my_array_with_new_dim = my_array[:, np.newaxis]
此处,newaxis() 方法用于向原始 my_array 添加一个额外维度。: 指定应保留原始数组中的所有行,np.newaxis 用于在数组末尾添加一个新维度。与 my_array 相比,生成的 my_array_with_new_dim 将有一个额外维度。
示例
在下面的示例中,我们首先创建一个复数数组 a。然后我们使用 newaxis() 向数组添加一个额外维度,然后我们可以使用该维度将实部和虚部分成不同的维度。然后使用 print() 函数打印结果的实部和虚部。
import numpy as np # 创建复数数组 a = np.array([2 + 3j, 4 + 5j, 6 + 7j]) # 分离实部和虚部 real_part = a[:, np.newaxis].real imag_part = a[:, np.newaxis].imag # 打印结果 print("原始数组: ", a) print("实部: ", real_part) print("虚部: ", imag_part)
输出
原始数组: [2.+3.j 4.+5.j 6.+7.j] 实部:[[2.] [4.] [6.]] 虚部:[[3.] [5.] [7.]]
方法 3:使用 numpy.real() 和 numpy.imag() 函数
numpy.real() 和 numpy.imag() 函数也可用于提取复数数组的实部和虚部。这些函数以 NumPy 复数数组作为输入,并分别返回包含实部和虚部的单独数组。
算法
定义一个复数的 NumPy 数组。
使用 numpy.real() 函数提取数组中复数的实部。
使用 numpy.imag() 函数提取数组中复数的虚部。
根据需要分别处理复数的实部和虚部。
根据需要组合处理后的实部和虚部。
import numpy as np # 假设 my_complex_array 是一个复数的 NumPy 数组 real_part = np.real(my_complex_array) imag_part = np.imag(my_complex_array)
这里,numpy.real() 函数用于提取 my_complex_array 中复数的实部,numpy.imag() 函数用于提取 my_complex_array 中复数的虚部。生成的 real_part 和 imag_part 数组将分别仅包含原始复数的实部和虚部。
示例
在下面的示例中,我们创建一个复数数组 a,并使用 numpy.real() 和 numpy.imag() 函数分别提取实部和虚部。然后使用 print() 函数打印结果的实部和虚部。
import numpy as np # 创建复数数组 a = np.array([2 + 3j, 4 + 5j, 6 + 7j]) # 分离实部和虚部 real_part = np.real(a) imag_part = np.imag(a) # 打印结果 print("原始数组: ", a) print("实部: ", real_part) print("虚部: ", imag_part)
输出
原始数组:[2.+3.j 4.+5.j 6.+7.j] 实部:[2. 4. 6.] 虚部:[3. 5. 7.]
结论
在本文中,我们讨论了如何分别使用 real 和 imag 属性提取复数 Numpy 数组的实部和虚部。通过使用这些属性,我们可以分别操作复数的实部和虚部,这在各种科学和工程应用中很有用。