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 模块中的函数执行计算要快的多
Python之复数、分数、大型数组数学运算(complex、cmath、numpy、fractions)的更多相关文章
- 大爽Python入门教程 1-1 简单的数学运算
大爽Python入门公开课教案 点击查看教程总目录 1 使用pycharm建立我们的第一个项目 打开pycharm,点击菜单栏,File->New Project 在Location(项目地址) ...
- 【Python】学习笔记四:数学运算
python中的加减乘除比其他的语言简单,不需要对其赋值变量 加减乘除 ) #加法 ) #减法 ) #乘法 ) #除法 5.0 ) #乘方 判断 判断返回的是True或者False ) #等于 Tru ...
- 第三节:numpy之数组数学运算
- Python: 复数的数学运算
写的最新的网络认证方案代码遇到了一个难题,唯一的解决办法就是使用复数空间,需要使用复数来执行一些计算操作. 复数可以用使用函数complex(real, imag) 或者是带有后缀j 的浮点数来指定. ...
- python 数字系列-复数的数学运算
复数的数学运算 问题 你写的最新的网络认证方案代码遇到了一个难题,并且你唯一的解决办法就是使用复数空间. 再或者是你仅仅需要使用复数来执行一些计算操作. 解决方案 复数可以用使用函数 complex( ...
- Python: 大型数组运算
需要在大数据集(比如数组或网格) 上面执行计算,涉及到数组的重量级运算操作,可以使用NumPy 库. 下面是一个简单的小例子,展示标准列表对象和NumPy 数组对象之间的差别 >>> ...
- 吾八哥学Python(五):Python基本数学运算
今天我们学习Python里的基本数学运算方法,还是通过例子来练习吧! 加减乘除求余 #加法 print(12+34) #减法 print(30-10.0) #乘法 print(3*5) #除法 pri ...
- linux学习:特殊符号,数学运算,图像与数组与部分终端命令用法整理
指令:let.expr.array.convert.tput.date.read.md5.ln.apt.系统信息 一:特殊符号用法整理 系统变量 $# 是传给脚本的参数个数 $0 是脚本本身的名字 $ ...
- Python 3标准库 第五章 数学运算
第五章数学运算-----------------------上下文解释:编程时,我们一般也是先给程序定义一些前提(环境变量.描述环境变化的全局变量等),这些“前提”就是上文,然后再编写各功能模块的代码 ...
随机推荐
- javascript中的toString()、toLocaleString()方法
javascript中的toString()方法,主要用于Array.Boolean.Date.Error.Function.Number等对象.下面是这些方法的一些解析和简单应用,做个纪律,以作备忘 ...
- tensorflow教程:tf.contrib.rnn.DropoutWrapper
tf.contrib.rnn.DropoutWrapper Defined in tensorflow/python/ops/rnn_cell_impl.py. def __init__(self, ...
- 134-基于TMS320C6678、FPGA XC5VSX95T的一路Full模式Camera Link图像理平台
基于TMS320C6678.FPGA XC5VSX95T的一路Full模式Camera Link图像理平台 一.板卡概述 该板卡采用TI公司新一代DSP TMS320C6678,结合FPGA,型号为X ...
- 关于TVS、ESD、稳压二极管、压敏电阻
一.稳压管和TVS管的工作原理 稳压二极管(又叫齐纳二极管),是一种直到临界反向击穿电压前都具有很高电阻的半导体器件,在这临界击穿点上,反向电阻降低到一个很小的数值,在这个低阻区中电流增加而电压则保持 ...
- 三 Bash Shell 结构
Bash Shell 程序结构主要有 : 变量设定 内置命令 Shell 语法结构 函数 其他命令行程序构成 例子: [root@localhost ~]# vim test.sh #!/bin/b ...
- TCP和UDP的区别,以及它们对应的协议有哪些?
TCP(传输控制协议) 是面向连接的协议.在收发数据前,一个TCP连接必须要经过“三次握手”建立可靠的连接.握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据.理想状态下 ...
- Redis Bloom Filter
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11632622.html 背景 比如刷抖音的时候,抖音会不停的推荐新的内容,而它每次推荐时候都要去重,以 ...
- Codeforces 842C--Ilya And The Tree(dfs+树)
原题链接:http://codeforces.com/contest/842/problem/C 题意:一个以1为根节点的树,每个节点有一个值ai,定义美丽度:从根节点到这个节点的路径上所有ai的gc ...
- 用C#编写ActiveX控件
http://www.cnblogs.com/homer/archive/2005/01/04/86473.html http://www.cnblogs.com/homer/archive/2005 ...
- [CSP-S模拟测试]:tree(DP)
题目传送门(内部题57) 输入格式 第一行包含一个数:$n$表示树的节点数.接下来$n-1$行,每行包含两个数:$u,v$表示无根树的一条边. 输出格式 输出$n$行,第$i$行包含一个浮点数,保留三 ...