python求小数部分_python-numpy数组的小数部分

我只需要获取数组的小数部分.

使用numpy或简单地使用python modf函数很方便.

如果我们有大量正分数数据数组,例如,可以和(1000000,3)一样大,那么更方便的做法是:

numpy.modf(array)[0]

array-numpy.trunc(array)

我认为2在内存使用方面更快,更便宜…但不确定. python和numpy专家怎么看?

解决方法:

我不是专家,所以我必须使用timeit模块检查速度.我使用IPython(这使计时变得非常容易),但即使没有它,timeit模块也可能是解决之道.

In [21]: a = numpy.random.random((10**6, 3))

In [22]: timeit numpy.modf(a)[0]

10 loops, best of 3: 90.1 ms per loop

In [23]: timeit a-numpy.trunc(a)

10 loops, best of 3: 135 ms per loop

In [24]: timeit numpy.mod(a, 1.0)

10 loops, best of 3: 68.3 ms per loop

In [25]: timeit a % 1.0

10 loops, best of 3: 68.1 ms per loop

最后两个是等效的.我对内存的使用了解不多,但是如果modf(a)[0]和a-numpy.trunc(a)都没有比直接使用mod占用更多的内存,我会感到惊讶.

[顺便说一句,如果您的代码完成了您想要的工作,而您只对改进感兴趣,那么您可能会对the codereview stackexchange感兴趣.我仍然对分隔线的位置没有很好的了解,但是感觉有点多喜欢他们的茶.]

标签:python-2-7,python,numpy

来源: https://codeday.me/bug/20191031/1977642.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值