Python之复数、分数、大型数组数学运算(complex、cmath、numpy、fractions)

一、复数的数学运算
复数可以用使用函数 complex(real, imag) 或者是带有后缀j的浮点数来指定
a=complex(2,4)
print(a)   # (2+4j)
b=2-5j
# 获取对应的实部、虚部和共轭复数
print(b.real,b.imag,b.conjugate())  # 2.0 -5.0 (2+5j)
# 数学运算
print(a+b)  # (4-1j)
print(abs(a))  # 4.47213595499958
复数函数比如正弦、余弦或平方根,使用 cmath 模块
import cmath
print(cmath.sin(a))
print(cmath.cos(a))
print(cmath.exp(a))
# (24.83130584894638-11.356612711218173j)
# (-11.36423470640106-24.814651485634183j)
# (-4.829809383269385-5.5920560936409816j)
使用 numpy 也可以处理复数
# 构造复数数组
import numpy as np
c=np.array([1+2j,2+3j,3+4j])
print(c)  # [ 1.+2.j  2.+3.j  3.+4.j]
print(c+2)  # [ 3.+2.j  4.+3.j  5.+4.j]
print(np.sin(c))  # [ 3.16577851 +1.95960104j  9.15449915 -4.16890696j  3.85373804-27.01681326j]

补充:

# Python的标准数学函数确实情况下并不能产生复数值,必须使用cmath
print(cmath.sqrt(-1))  # 1j
二、分数运算
fractions 模块可以被用来执行包含分数的数学运算
from fractions import Fraction
a=Fraction(1,3)
b=Fraction(1,4)
print(a,b,a+b)  # 1/3 1/4 7/12
c=a*b
print(c)  # 1/12
三、大型数组运算
首先了解:标准列表对象和 NumPy 数组对象之间的差别
标准列表对象:
x = [1, 2, 3, 4]
y = [5, 6, 7, 8]
print(x * 2)  # [1, 2, 3, 4, 1, 2, 3, 4]
# print(x + 10)   # 报错了TypeError: can only concatenate list (not "int") to list
print(x + y)  # [1, 2, 3, 4, 5, 6, 7, 8]

 

Numpy arrays
import numpy as np
ax = np.array([1, 2, 3, 4])
ay = np.array([5, 6, 7, 8])
print(ax * 2)  # array([2, 4, 6, 8])
print(ax + 10)  # array([11, 12, 13, 14])
print(ax + ay)  # array([ 6, 8, 10, 12])
print(ax * ay)  # array([ 5, 12, 21, 32])
计算多项式的值,即每个列表元素进行多项式运算
def f(x):
    return 3*x**2 - 2*x + 7

print(f(ax))   # [ 8 15 28 47]
多维数组,索引问题, 列表基层嵌套,就是几维数组 ,索引:逗号分不同维度的
# eg  (1:3,2:3) 二维数组中取第一层索引1到3,再取索引1到3列表中索引的2:4
a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])  # 二维数组
print(a[1:3,1:3])  # [[ 6  7] [10 11]]
print(a[:,1])  # [ 2  6 10]
print(a+2)  # [[ 3  4  5  6] [ 7  8  9 10] [11 12 13 14]]
补充:numpy 优势:numpy中的函数要比循环数组并使用 math 模块中的函数执行计算要快的多
 

转载于:https://www.cnblogs.com/zzy-9318/p/10472067.html

### 回答1: Python中使用j表示虚数单位,可以使用complex()函数创建一个复数对象,例如: ``` a = 3 + 4j b = complex(2, -5) print(a + b) # 输出:(5-1j) ``` 以上代码中,a和b分别表示两个复数,它们可以进行常规的加、减、乘、除等运算。 ### 回答2: 在Python中,复数可以通过使用关键字`complex`来创建。复数由实部和虚部组成,可以用`a + bj`的形式表示,其中a为实部,b为虚部。 要输出复数运算结果,可以使用Python内置的数学函数和运算符。 例如,假设我们想要将两个复数进行相加并输出结果。可以使用`+`运算符来执行此操作。下面是一个示例代码: ```python # 创建复数 num1 = complex(3, 4) num2 = complex(2, 5) # 复数相加 result = num1 + num2 # 输出结果 print("相加结果:", result) ``` 运行上述代码,将输出:`相加结果: (5+9j)`,其中`(5+9j)`表示复数的实部为5,虚部为9。 同样地,对于复数的其他运算(如减法、乘法和除法),可以使用相应的运算符`-`,`*`和`/`。 需要注意的是,Python中提供了`cmath`模块,专门用于处理复数运算。通过导入`cmath`模块,可以使用诸如求幂、取平方根和计算共轭等复数专属的函数。 总之,通过使用适当的运算符和数学函数,可以在Python中输出复数运算结果。 ### 回答3: 在Python中,可以使用复数类型进行复数运算并输出结果。在Python中,复数类型的表示方式是实数部分 + 虚数部分j,其中j表示虚数单位。以下是几个常见的复数运算及其输出示例: 1. 复数加法: 复数1 = 2 + 3j 复数2 = 4 + 5j 结果 = 复数1 + 复数2 print(结果) # 输出:(6+8j) 2. 复数减法: 复数1 = 2 + 3j 复数2 = 4 + 5j 结果 = 复数1 - 复数2 print(结果) # 输出:(-2-2j) 3. 复数乘法: 复数1 = 2 + 3j 复数2 = 4 + 5j 结果 = 复数1 * 复数2 print(结果) # 输出:(-7+22j) 4. 复数除法: 复数1 = 2 + 3j 复数2 = 4 + 5j 结果 = 复数1 / 复数2 print(结果) # 输出:(0.5609756097560976+0.0487804878048781j) 5. 复数取模: 复数1 = 2 + 3j 结果 = abs(复数1) print(结果) # 输出:3.605551275463989 以上是几种常见的复数运算及其输出示例。在Python中,复数类型的运算和操作与其他数值类型类似,但需要注意的是复数的虚数部分应以j表示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值