提取复数 NumPy 数组的实部和虚部

numpyserver side programmingprogramming

在 Python 中,我们可以分别使用数组的 realimag 属性提取复数 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 数组的 realimag 属性分别用于提取数组的实部和虚部。

算法

以下是使用 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_partimag_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.]

结论

在本文中,我们讨论了如何分别使用 realimag 属性提取复数 Numpy 数组的实部和虚部。通过使用这些属性,我们可以分别操作复数的实部和虚部,这在各种科学和工程应用中很有用。


相关文章