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

  • Post category:Python

提取NumPy复数数组的实部和虚部,需要使用到NumPy库中的实部函数real()和虚部函数imag()。下面是具体的攻略:

1. 读取复数数组

首先要有一个复数数组,可以通过NumPy库的array()函数创建。例如,我们创建一个2×2的复数数组:

import numpy as np
z = np.array([[1+2j, 3+4j], [5+6j, 7+8j]])

2. 提取实部

提取复数数组的实部,可以使用real()函数。例如,提取z的实部:

real_part = z.real
print(real_part)

输出结果为:

[[1. 3.]
 [5. 7.]]

这里实部的数据类型为浮点型。

3. 提取虚部

提取复数数组的虚部,可以使用imag()函数。例如,提取z的虚部:

imag_part = z.imag
print(imag_part)

输出结果为:

[[2. 4.]
 [6. 8.]]

这里虚部的数据类型也是浮点型。

4. 完整代码示例

import numpy as np

# 创建一个2×2的复数数组
z = np.array([[1+2j, 3+4j], [5+6j, 7+8j]])

# 提取复数数组的实部
real_part = z.real
print(real_part)

# 提取复数数组的虚部
imag_part = z.imag
print(imag_part)

输出结果为:

[[1. 3.]
 [5. 7.]]
[[2. 4.]
 [6. 8.]]

5. 示例说明

下面进行两个示例说明:

示例1:对复数数组的实部和虚部进行加法运算

import numpy as np

# 创建两个2×2的复数数组
z1 = np.array([[1+2j, 3+4j], [5+6j, 7+8j]])
z2 = np.array([[10+20j, 30+40j], [50+60j, 70+80j]])

# 提取z1和z2的实部
real_part1 = z1.real
real_part2 = z2.real

# 提取z1和z2的虚部
imag_part1 = z1.imag
imag_part2 = z2.imag

# 实部和虚部加法运算
real_part_sum = real_part1 + real_part2
imag_part_sum = imag_part1 + imag_part2

# 将实部和虚部合并成一个复数数组
z_sum = real_part_sum + 1j*imag_part_sum
print(z_sum)

输出结果为:

[[11.+22.j 33.+44.j]
 [55.+66.j 77.+88.j]]

示例2:求复数数组的模长

import numpy as np

# 创建一个3×3的复数数组
z = np.array([[1+1j, 2+3j, 4+5j], [6+7j, 8+9j, 1+2j], [3+4j, 5+6j, 7+8j]])

# 计算复数数组的模长
mod = np.abs(z)
print(mod)

输出结果为:

[[1.41421356 3.60555128 6.40312424]
 [9.21954446 11.40175425 2.23606798]
 [5.        7.81024968 10.63014581]]

上述示例中,我们利用了NumPy库中的abs()函数求出了复数数组的模长。