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


在Python中,我们可以分别使用数组的realimag属性来提取NumPy复数数组的实部和虚部。NumPy是一个用于复杂计算的Python库,也支持复数。在本文中,我们将了解如何分别提取复数的实部和虚部。

理解NumPy中的复数

在NumPy中,我们使用complex数据类型将复数表示为实部和虚部的组合。我们可以使用complex()函数在NumPy中创建复数。

示例

在下面的示例中,我们通过两种方式创建复数——使用complex函数和使用array() NumPy函数。complex函数创建一个单个复数,而array()函数创建一个复数列表。

import numpy as np

# create a complex number
z = complex(3, 4)
print(z) 

# create an array of complex numbers
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
# create an array of complex numbers
a = np.array([complex(2, 3), complex(4, 5), complex(6, 7)])

# extract the real and imaginary parts
real_part = a.real
imag_part = a.imag

print("Original Array: ", a)
print("Real Part: ", real_part)
print("Imaginary Part: ", imag_part)

输出

Original Array:  [2.+3.j 4.+5.j 6.+7.j]
Real Part:  [2. 4. 6.]
Imaginary Part:  [3. 5. 7.]

方法2:使用newaxis()方法

newaxis()方法允许我们向NumPy数组添加一个额外维度。当应用于复数数组时,我们可以使用它将实部和虚部分离到不同的维度。

算法

  • 定义一个NumPy复数数组。

  • 使用newaxis()向数组添加一个额外维度。

  • 使用real属性提取数组中复数的实部。

  • 使用imag属性提取数组中复数的虚部。

  • 根据需要分别处理复数的实部和虚部。

  • 根据需要组合处理后的实部和虚部。

语法

import numpy as np

# assume my_array is a NumPy array of any shape
my_array_with_new_dim = my_array[:, np.newaxis]

这里,newaxis()方法用于向原始my_array添加一个额外维度。冒号(:)指定应保留原始数组中的所有行,而np.newaxis用于在数组末尾添加一个新维度。生成的my_array_with_new_dim将比my_array多一个维度。

示例

在下面的示例中,我们首先创建一个复数数组a。然后,我们使用newaxis()向数组添加一个额外维度,然后我们可以使用它将实部和虚部分离到不同的维度。然后,使用print()函数打印生成的实部和虚部。

import numpy as np

# create an array of complex numbers
a = np.array([2 + 3j, 4 + 5j, 6 + 7j])

# separate the real and imaginary parts
real_part = a[:, np.newaxis].real
imag_part = a[:, np.newaxis].imag

# print the results
print("Original Array: ", a)
print("Real Part: ", real_part)
print("Imaginary Part: ", imag_part)

输出

Original Array:  [2.+3.j 4.+5.j 6.+7.j]
Real Part:  [[2.]
 [4.]
 [6.]]
Imaginary Part:  [[3.]
 [5.]
 [7.]]

方法3:使用numpy.real()和numpy.imag()函数

numpy.real()和numpy.imag()函数也可以用于提取复数数组的实部和虚部。这些函数以NumPy复数数组作为输入,并分别返回包含实部和虚部的单独数组。

算法

  • 定义一个NumPy复数数组。

  • 使用numpy.real()函数提取数组中复数的实部。

  • 使用numpy.imag()函数提取数组中复数的虚部。

  • 根据需要分别处理复数的实部和虚部。

  • 根据需要组合处理后的实部和虚部。

import numpy as np

# assume my_complex_array is a NumPy array of complex numbers
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

# create an array of complex numbers
a = np.array([2 + 3j, 4 + 5j, 6 + 7j])

# separate the real and imaginary parts
real_part = np.real(a)
imag_part = np.imag(a)

# print the results
print("Original Array: ", a)
print("Real Part: ", real_part)
print("Imaginary Part: ", imag_part)

输出

Original Array:  [2.+3.j 4.+5.j 6.+7.j]
Real Part:  [2. 4. 6.]
Imaginary Part:  [3. 5. 7.]

结论

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

更新于:2023年7月10日

4K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告