前言

最近在使用 librosa (一个用来处理信号的库)过程中遇到复数操作,笔者记录了一下操作过程,主要是要将复数矩阵(n x m)变成矩阵(n x m x 2),然后返回到复数矩阵。

复数(n x m)转矩阵(n x m x 2)

复数矩阵A(n x m)中每一个点 Ai,jA_{i,j}Ai,j​ 都是复数值 a+bia+bia+bi ,然后转成矩阵B(n x m x 2)每个点是 [a,b][a,b][a,b]。
代码:

# 复数矩阵A
A = np.array([[1,2+3.j,3,4], [5,6,7+1.j,8], [9,10,11,12]], dtype=np.complex64)
print(A)# 转成矩阵B
B=np.stack([np.real(A), np.imag(A)], axis=-1)
print(B)

输出:

[[  1.+0.j   2.+3.j   3.+0.j   4.+0.j][  5.+0.j   6.+0.j   7.+1.j   8.+0.j][  9.+0.j  10.+0.j  11.+0.j  12.+0.j]]
[[[  1.   0.][  2.   3.][  3.   0.][  4.   0.]][[  5.   0.][  6.   0.][  7.   1.][  8.   0.]][[  9.   0.][ 10.   0.][ 11.   0.][ 12.   0.]]]

矩阵(n x m x 2)转复数(n x m)

代码:

# 生成 矩阵 B
A = np.array([[1,2+3.j,3,4], [5,6,7+1.j,8], [9,10,11,12]], dtype=np.complex64)
B=np.stack([np.real(A), np.imag(A)], axis=-1)
print(B)# 转换成复数矩阵
r_A=1j*B[:,:,1]
r_A+= B[:,:,0]
print(r_a)# 无差
print(r_A-A)

输出:

[[[  1.   0.][  2.   3.][  3.   0.][  4.   0.]][[  5.   0.][  6.   0.][  7.   1.][  8.   0.]][[  9.   0.][ 10.   0.][ 11.   0.][ 12.   0.]]]
[[  1.+0.j   2.+3.j   3.+0.j   4.+0.j][  5.+0.j   6.+0.j   7.+1.j   8.+0.j][  9.+0.j  10.+0.j  11.+0.j  12.+0.j]]
[[ 0.+0.j  0.+0.j  0.+0.j  0.+0.j][ 0.+0.j  0.+0.j  0.+0.j  0.+0.j][ 0.+0.j  0.+0.j  0.+0.j  0.+0.j]]

参考

  1. how-to-convert-a-numpy-complex-array-to-a-two-element-float-array
  2. 【python】将两个实数矩阵合并为一个复数矩阵

欢迎小可爱们,点赞 收藏 分享~

Python 复数操作相关推荐

  1. python复数实部可以为0吗_Python复数属性和方法运算操作示例

    Python复数属性和方法运算操作示例 这篇文章主要介绍了Python复数属性和方法运算操作,结合实例形式分析了Python复数运算相关操作技巧,代码注释备有详尽说明, 分享给大家供大家参考,具体如下 ...

  2. python复数类型的虚部通过什么表示_python复数,python中复数怎么表示

    你说的没错,可以是大写的,所以其实C也是错的 Python语言中有关复数的几个概念 1.规定复数的乘法按照以下的法则进行: 设z1=a+bi,z2=c+di(a.b.c.d∈R)是任意两个复数,那么它 ...

  3. python入门操作学习

    复数操作: >>>complex(2,2) (2+2j) >>> 1+2j (1+2j) >>> _*2 (2+4j) >>> ...

  4. python复数运算程序_python复数-python,复数

    本教程分享:<python复数>, Python如何编程输出一个一元二次方程的复数解 #编程求解复数解fromtimeimportctimefromnumpy.lib.scimathimp ...

  5. python复数的实部和虚部都是整数嘛_数字类型

    Python数字数据类型用于储存数值. 数字类型是不可变类型,所谓不可变类型,指的是类型的值一旦有不同了,那么他就是一个全新的对象,数字1和2分别代表两个不同的对象,对变量重新赋值一个数字类型,会新创 ...

  6. 在python中一个复数的虚部用i表示_以3为实部4为虚部,Python复数的表达形式为___________或________。_学小易找答案...

    [填空题]Python 源代码程序编译后的文件扩展名为_________. [单选题]1. Why did the old Watchdog say that the sun will teach t ...

  7. tensorflow之复数操作

    1.TensorFlow复数操作 查看全文 http://www.taodudu.cc/news/show-4764309.html 相关文章: 实现复数类中的运算符重载 九度1178 阶乘 c语言 ...

  8. python复数类型转换_python复数类

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! a = trueb = falseprint (a = %s, b = %s % ...

  9. python复数的虚部怎么表达

    转载自品略图书馆 http://www.pinlue.com/article/2020/04/1007/0110139993504.html 复数是由一个实数和一个虚数组合构成,表示为:x+yj 一个 ...

最新文章

  1. 使用torchvision.models.inception_v3(pretrained=True)加载预训练的模型每次都特别慢
  2. Windows7_x64下编译64位ffmpeg
  3. java会编译失败吗?_请问为什么这个通用java代码不会编译?
  4. oracle怎么判断是裸设备安装,Oracle 9i下以裸设备方式安装数据库
  5. 【报错笔记】做struts项目建立jsp文件老是报错
  6. 通过修改注册表设定浏览器的却省值
  7. 按照RFC3984协议实现H264视频流媒体 RTSP H264
  8. 数据驱动科技赋能,东吴证券打造数据中台“九大能力”
  9. ASP.NET组件设计Step by Step(8)
  10. JS学习总结(4)——条件语句
  11. 深度学习(十八)基于R-CNN的物体检测-CVPR 2014
  12. Unsatisfied forward or external declaration 错误分析
  13. python的循环控制语句while和for的使用详解
  14. 在线网页如何免费excel转pdf
  15. 机械革命蛟龙16K和蛟龙16区别
  16. 多校冲刺NOIP模拟6 - 游戏——矩阵乘法、后缀自动机SAM
  17. 服! 买不起2.6亿一只的加密猫, 他用10分钟生了一窝!
  18. 【华人学者风采】胡瑞忠 中国科学院
  19. 【深度探讨】数据存储进化论,区块链才是未来
  20. 关于Hanoi塔的实现

热门文章

  1. 海外观察:美国如何进行英语教育?
  2. DVWA完整搭建教程
  3. 为了保证页面输出安全,我们经常需要对一些特殊的字符进行转义,请写一个函数escapeHtml,将, , , “进行转义
  4. 算法学习————自然归并算法(c/c++)
  5. CAD多段线在布局视口中为什么会是“空心”的?
  6. Android获取应用APP
  7. 小程序图片高度自适应等问题
  8. mooc python123答案
  9. node版本如何升级
  10. 一个不错的 png压缩工具 pngquant 使用介绍 批量压缩png