簡體   English   中英

更改數組中的元素 - Python

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM