栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

是否可以创建一个包含复杂整数的numpy.ndarray?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

是否可以创建一个包含复杂整数的numpy.ndarray?

我还处理许多复杂的整数数据,通常是基带数据。我用

dtype = np.dtype([('re', np.int16), ('im', np.int16)])

它不是完美的,但是可以充分描述数据。我将其用于加载到内存中,而不会增加数据大小。它还具有能够通过HDF5透明加载和存储的优点。

DATATYPE  H5T_COMPOUND {    H5T_STD_I16LE "re";    H5T_STD_I16LE "im";}

使用它很简单,只是有所不同。

x = np.zeros((3,3),dtype)x[0,0]['re'] = 1x[0,0]['im'] = 2x>> array([[(1, 2), (0, 0), (0, 0)],>>        [(0, 0), (0, 0), (0, 0)],>>        [(0, 0), (0, 0), (0, 0)]], >>  dtype=[('re', '<i2'), ('im', '<i2')])

为了进行数学运算,我将其转换为本机复杂的float类型。显而易见的方法行不通,但也不难。

y = x.astype(np.complex64) # doesn't work, only gets the real party = x['re'] + 1.j*x['im']  # works, but slow and bigy = x.view(np.int16).astype(np.float32).view(np.complex64)y>> array([[ 1.+2.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]], dtype=complex64)

最后一种转换方法受https://stackoverflow.com/a/5658446/1784179启发



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/660110.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号