[英]Changing elements in an Array - Python
def q(s):
n = len(s)
v = numpy.zeros(n, dtype=float)
s
是一個包含我想要的許多元素的向量( [s0,s1,s2,....,sn-2,sn-1]
),然后我打算創建一個數組(初始為零)與s
相同的大小。
我的目標是將此數組中的零元素更改為[s1/s0 , s2/s1 , s3/s2..., sn-1/sn-2]
。
我知道需要一個for循環,但我發現很難編程。 有人可以提供幫助嗎? 謝謝。
您不需要首先創建一個零數組。
[b / a for a, b in zip(s, s[1:])]
說明
s
你的列表中, s[1:]
為你列出除了第一個元素。
zip
將它們成對放在一起,如[[s0, s1], [s1, s2],... [sn-2, sn-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 ])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.