簡體   English   中英

將整數附加到Python中的空NumPy數組

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

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