我正在尋找一種有效的方法來從Python中的數組中提取僅有的重要值,例如只有那些比其他值大10倍的值。使用非常簡單的情況下,邏輯(沒有代碼)是類似的東西:在端new_array從數組中提取重要值
array = [5000, 400, 40, 10, 1, 35] # here the significant value will be 5000.
from i=0 to len.array # to run the procedure in all the array components
delta = array[i]/array [i+1] # to confirm that array[i] is significant or not.
if delta >= 10 : # assuming a rule of 10X significance i.e significance = 10 times bigger than the rest of elements in the array.
new_array = array[i] # Insert to new_array the significant value
elif delta <= 0.1 : # in this case the second element is the significant.
new_array = array[i+1] # Insert to new_array the significant value
將由顯著值組成,在這種情況下new_array = [5000],但必須適用於任何種類數組。
感謝您的幫助!
UPDATE !!!
感謝大家的回答!特別是對科波菲爾給了我一個關於如何去做的好主意。這是用於此目的的代碼!
array_o = [5000,4500,400, 4, 1, 30, 2000]
array = sorted(array_o)
new_array = []
max_array = max(array)
new_array.append(max_array)
array.remove(max_array)
for i in range(0,len(array)):
delta = max_array/array[i]
if delta <= 10:
new_array.append(array[i])
這是否意味着'new_array'將始終只包含一個值?因爲在你的情況下'400'也應該添加到'new_array'(據我所知)。 – ettanany
首先將'new_array'初始化爲一個空數組,然後'append()'滿足您正在查找的'delta'的任何新項。 –
你會從'[5001,5000,400,40,10,1,35]'中提取什麼? –