繁体   English   中英

将每个元素除以NumPy数组中的下一个元素

[英]Divide each element by the next one in NumPy array

我希望能够将一维numpy数组中的值除以以下值。 例如,我有一个看起来像这样的数组。

[ 0 20 23 25 27 28 29 30 30 22 20 19 19 19 19 18 18 19 19 19 19 19 ]

我想做这个:

0/20 #0th value divided by 1st value
20/23 #1st value divided by 2nd value
23/25 #2nd value divided by 3rd value
25/27 #3rd value divided by 4th value
etc...

我可以轻松地通过循环来完成此操作,但是我想知道是否有更有效的方法可以执行numpy操作。

获得两个Slices -一个从startlast-1 ,另一个从start+1last并执行逐元素除法-

a[:-1]/a[1:]

要获得浮点数除法-

np.true_divide(a[:-1],a[1:])

from __future__ import division ,然后使用a[:-1]/a[1:]

作为输入数组的views ,可以真正有效地访问这些切片以进行按元素划分的操作。

样品运行-

In [56]: a    # Input array
Out[56]: array([96, 81, 48, 53, 18, 92, 79, 43, 13, 69])

In [57]: from __future__ import division

In [58]: a[:-1]/a[1:]
Out[58]: 
array([ 1.18518519,  1.6875    ,  0.90566038,  2.94444444,  0.19565217,
        1.16455696,  1.8372093 ,  3.30769231,  0.1884058 ])

In [59]: a[0]/a[1]
Out[59]: 1.1851851851851851

In [60]: a[1]/a[2]
Out[60]: 1.6875

In [61]: a[2]/a[3]
Out[61]: 0.90566037735849059

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM