更改数组中的元素 - Python

时间:2014-02-08 18:01:10

标签: python arrays numpy

def q(s):
    n = len(s)
    v = numpy.zeros(n, dtype=float)

s是一个包含我想要的许多元素的向量([s0,s1,s2,....,sn-2,sn-1]),然后我打算创建一个与{{1}大小相同的数组(初始为零) }。

我的目标是将此数组中的零元素更改为s

我知道需要一个for循环,但我发现很难编程。有人可以提供帮助吗?谢谢。

2 个答案:

答案 0 :(得分:1)

您不需要先创建一个零数组。

[b / a for a, b in zip(s, s[1:])]

<强>解释

s您的列表,除了第一个元素外,您列出的是s[1:]

zip将它们成对组合在一起,例如[[s0, s1], [s1, s2],... [sn-2, sn-1]]

然后你只需将每个子列表的第二个元素除以第一个元素。

答案 1 :(得分:1)

如果您使用的是NumPy数组,则不需要显式循环:

>>> import numpy as np
>>> a = np.array([10, 20, 30, 40, 50], dtype=float)
>>> a[1:]/a[:-1]
array([ 2.        ,  1.5       ,  1.33333333,  1.25      ])