NumPy real 和 NumPy imag 的完整指南

大家好,欢迎回到 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+0j0.5+0j因此,很明显,两个数字的虚部都等于 0。这就是输出数组中最后两个值等于 0 的原因。

这就是使用 NumPy real 和 NumPy imag 函数的全部内容。

概括

在本文中,我们了解了 NumPy real 和 imag 函数以及不同类型的示例。我们还了解了两个函数的返回类型,这是本文最有趣的部分 🙂

继续学习并继续探索更多此类文章。

参考