[英]appending integers to empty NumPy array in Python
我有一個NumPy數組,用於存儲信號的信息。 在下面的代碼中,為了方便起見,我只是根據隨機數創建的。 現在,我需要根據條件從信號陣列中選擇位置。 為了簡潔起見,我再次簡化了以下標准。 我試圖通過將這些位置附加到稱為位置的空NumPy數組中來存儲這些位置。 我知道我對NumPy.append()函數的使用一定是錯誤的。 我嘗試調試它,但是找不到錯誤。 我究竟做錯了什么?
import numpy as np
import numpy.random as random
signal = random.randint(1,10000,1000)
positions = np.array([],dtype = int)
for i in range(0,len(signal)):
if((signal[i] % 3 == 0) or (signal[i] % 5 == 0)):
print(i)
np.append(positions,i)
print(positions)
編輯:
我實際上需要在for循環中運行,因為如果滿足條件 ,則if()中的條件是一個數學表達式,該表達式將根據某些規則(將在此處發布的方法很復雜) 進行更改 。
您不需要為此的顯式循環:
positions = np.where((signal % 3 == 0) | (signal % 5 == 0))[0]
這里, (signal % 3 == 0) | (signal % 5 == 0)
(signal % 3 == 0) | (signal % 5 == 0)
對signal
每個元素評估標准, np.where()
返回標准為true的索引。
如果必須在循環中追加positions
,這是一種方法:
positions = np.hstack((positions, [i]))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.