加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 确定扩展NumPy类型的转换

发布时间:2020-12-20 11:32:02 所属栏目:Python 来源:网络整理
导读:我有一个基于NumPy的库,有一些类重载算术运算.由于大量的错误检查,内部有点毛茸茸,但我遇到了一个严重的问题,我是怎么做的. 该库背后的想法是使程序员使用最少的语法和努力使其非常容易和直观.因此,我希望很容易组合不同数据类型的数组,并简单地将较窄的数据
我有一个基于NumPy的库,有一些类重载算术运算.由于大量的错误检查,内部有点毛茸茸,但我遇到了一个严重的问题,我是怎么做的.

该库背后的想法是使程序员使用最少的语法和努力使其非常容易和直观.因此,我希望很容易组合不同数据类型的数组,并简单地将较窄的数据类型转换为更广泛的情况.

例如,如果我有两个数组,一个是dtype float64而另一个是dtype complex128,当它们一起添加时我想将float64转换为complex128,但是如果它是float64和complex192,我想转换为它.但是,如果它是float64和complex64的组合,则两者之间没有有效的转换而不会丢失float64的精度,所以我想将两者都转换为complex128.

我立即看到了这个问题,即如果我希望我的库完全可靠,我必须寻找每种类型的组合并确定它们最窄的常见加宽类型(想想最不常见的多重类型).我不想将所有内容转换为最宽泛的类型,因为这会很快变得内存效率低下,并且我经常在内存中存储非常大的数组.

有没有一种好方法可以确定两种NumPy类型之间最窄的常见加宽类型?

解决方法

@amaurea有正确的想法;事实上,函数已经存在于numpy中.
看看 result_type和 promote_types.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读