簡體   English   中英

遍歷numpy數組

[英]Iterate over numpy array

給定以下數組:

x = np.array([[0,2,4,5,5.5,6,7],[4,5,6,7,2,3,4]])

基於該數組,我需要創建另一個跳過行單位的數組,第一列的值> 5。

所以結果應該像這樣:

([[5.5,6,7],[2,3,4]])

有什么提示可以解決該問題的簡單(快速)方法嗎? 非常感謝您的幫助!

我們可以使用布爾數組作為過濾索引。

>>> x[:, x[0] > 5]
array([[ 5.5,  6. ,  7. ],
       [ 2. ,  3. ,  4. ]])
  • x[0]選擇第一行
  • x[0] > 5創建一個布爾數組,檢查元素是否大於5。 (這是[False, False, False, False, True, True, True] 。)
  • 當我們寫some_array[boolean_array]我們只保留在元件中some_array這在對應值boolean_array為True。 例如,

     >>> numpy.array([2, 4, 6, 8])[numpy.array([True, False, False, True])] array([2, 8]) 
  • 由於我們要選擇列,因此布爾數組x[0] > 5應該放在第二個軸上。 我們選擇與整個第一軸: 因此,最終表達式為x[:, x[0] > 5]

或枚舉函數:

    res = []
    for i, _ in enumerate(x):
    res.append([])
    for j, val in enumerate(x[i]):
        if j > 5:
            res[i].append(val)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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