大家好,欢迎回到 NumPy 的另一个令人兴奋的教程。
复数大家一定很熟悉吧?如果没有,让我快速回顾一下。因此,复数是由实部和虚部两部分组成的特殊数字。z = x+yi形式的数字z被称为复数,其中 x 和 y 是实数,则数字 z被称为复数。
本教程需要这个简短的介绍,因为它是进一步理解这两个函数的基础。现在,我们可以仅使用简单的 NumPy 函数提取复数的实部和虚部吗?是的,我们可以使用 NumPy 库的两个函数(即numpy.real()
和 )来做到这一点numpy.imag()
。
这就是我们将在文章中讨论的内容。
了解 Numpy Real
在 NumPy 库下的众多函数中,numpy real是提取Complex 参数实部的函数。
让我们看一下该函数的语法。
NumPy real 的语法
numpy.real(val) |
输入val
可以是单个复数,也可以是复数的 NumPy 数组。
我们将在代码片段部分讨论它的返回类型,因为您可以更轻松地理解它并观察输出。
使用 NumPy real
让我们编写一些代码来清楚地理解该函数。
1. 单个复数的 NumPy 实数
import numpy as np # Passing Complex Numbers as argument to the fucntion print ( "The real part of 1+3j is:" ,np.real( 1 + 3j )) print ( "The real part of 3j is:" ,np.real( 3j )) print ( "\n" ) # Passing real numbers as argument to the function print ( "The real part of 1 is:" ,np.real( 1 )) print ( "The real part of -1.1 is:" ,np.real( - 1.1 )) |
输出
The real part of 1+3j is: 1.0 The real part of 3j is: 0.0 The real part of 1 is: 1 The real part of -1.1 is: -1.1 |
注意:每个实数都可以表示为复数。例如,1可以表示为1+0i,其中虚部变为0。
在上面的示例中,我们将复数和实数作为函数的输入传递np.real()
。注意到两种情况下输出的差异确实很有趣。
当复数作为参数传递给函数时,输出的类型为float。然而,当实数作为参数传递给函数时,输出的类型与输入数字相同 。这只是函数返回类型之间的区别。
2. NumPy 复数数组的 NumPy 实数
import numpy as np a = np.array(( 1 + 3j , 3j , 1 , 0.5 )) b = np.real(a) print ( "The input array:\n" ,a) print ( "The real part of the numbers:\n" ,b) |
输出
The input array: [1. +3.j 0. +3.j 1. +0.j 0.5+0.j] The real part of the numbers: [1. 0. 1. 0.5] |
我们来理解一下上面的例子。在这里,我们创建了一个变量a
,用于存储由四个元素组成的 NumPy 数组,其中两个是复数,另外两个是实数。
在下一行中,我们使用该np.real()
函数提取输入数组元素的实部。该函数的输出是一个 NumPy 数组,存储在变量 中b
。
在接下来的两行中,我们使用两个 print 语句分别打印输入数组和输出数组。
这就是使用 NumPy 实数函数的全部内容。现在,我们将了解 NumPy imag 函数。
关于 NumPy 图像
NumPy imag 也是 NumPy 库的数学函数之一,用于提取Complex 参数的虚部。
它的语法与 NumPy real 函数非常相似。
NumPy imag 的语法
numpy.imag(val) |
输入val
可以是单个复数,也可以是复数的 NumPy 数组。
它的返回类型与我们在上一节中讨论的 NumPy real 函数的返回类型完全相同。
使用 NumPy imag
让我们将此函数与不同类型的输入值一起使用。
1. 单个复数的 NumPy 图像
import numpy as np # Passing Complex Numbers as argument to the fucntion print ( "The imaginary part of 1+3j is:" ,np.imag( 1 + 3j )) print ( "The imaginary part of 3j is:" ,np.imag( 3j )) print ( "\n" ) # Passing imag numbers as argument to the function print ( "The imaginary part of 1 is:" ,np.imag( 1 )) print ( "The imaginary part of -1.1 is:" ,np.imag( - 1.1 )) |
输出
The imaginary part of 1+3j is: 3.0 The imaginary part of 3j is: 3.0 The imaginary part of 1 is: 0 The imaginary part of -1.1 is: 0.0 |
这里,输出的类型取决于函数的输入类型。我们可以观察到,如果将复数作为输入传递,则函数的输出是浮点数,而如果输入是实数,则输出数字的类型取决于输入数字的类型。
该函数np.imag()
提取复数的虚部。复数中与术语“j”相关的数字是复数的虚部。
2. 复数 NumPy 数组的 NumPy 图像
import numpy as np a = np.array(( 1 + 3j , 3j , 1 , 0.5 )) b = np.imag(a) print ( "The input array:\n" ,a) print ( "The imaginary part of the numbers:\n" ,b) |
输出
The input array: [1. +3.j 0. +3.j 1. +0.j 0.5+0.j] The imaginary part of the numbers: [3. 3. 0. 0.] |
在上面的代码片段中,前两个输出是明确的,但为什么输出数组中的其他两个值是 0?
实际上,输入数组的最后两个元素是实数,可以分别写为1+0j和0.5+0j。因此,很明显,两个数字的虚部都等于 0。这就是输出数组中最后两个值等于 0 的原因。
这就是使用 NumPy real 和 NumPy imag 函数的全部内容。
概括
在本文中,我们了解了 NumPy real 和 imag 函数以及不同类型的示例。我们还了解了两个函数的返回类型,这是本文最有趣的部分 🙂
继续学习并继续探索更多此类文章。