這是我只想提取第一個元素為 0 或列值為 0 的行的一堆點。這是串列的輸出片段。
array([[ 29.42787794, 453. , 496. ],
[ **0.** , **424. , 491.** ],
[ 34.66987165, 453. , 472. ],
[ 26. , 414. , 467. ],
[ 48.27007354, 393. , 454. ],
[ 51.4781507 , 417. , 440. ]]),
array([[ 24. , 453. , 496. ],
[ 34.66987165, 424. , 491. ],
[ **0.** , **453. , 472.** ],
[ 39.3192065 , 414. , 467. ],
[ 28. , 453. , 444. ],
[ 48.16637832, 417. , 440. ],
[ 48.70318265, 469. , 426. ]]),
array([[ 48.60041152, 453. , 496. ],
[ 26. , 424. , 491. ],
[ 39.3192065 , 453. , 472. ],
[ **0. , **414. , 467.**** ],
[ 24.69817807, 393. , 454. ],
[ 45.27692569, 453. , 444. ],
[ 27.16615541, 417. , 440. ],
[ 42.19004622, 392. , 431. ],
[ 51.623638 , 433. , 419. ]])
所以我想從這個陣列串列中提取粗體點。我不確定該怎么做?在將陣列附加到串列之前,我已經嘗試過 numpy.where, np.any 但似乎沒有任何效果。繼續前進,我想知道是否可以使用串列來獲取粗體點。len(list) 是附加陣列的數字。所以我對如何從串列中的單獨陣列中檢索奇異點感到有些困惑。
uj5u.com熱心網友回復:
你的意思是:
>>> arr = np.vstack(arr)
>>> arr[arr[:, 0] == 0]
array([[ 0., 424., 491.],
[ 0., 453., 472.],
[ 0., 414., 467.]])
>>>
或者你試試np.isclose:
>>> arr = np.vstack(arr)
>>> arr[np.isclose(0, arr[:, 0])]
array([[ 0., 424., 491.],
[ 0., 453., 472.],
[ 0., 414., 467.]])
>>>
uj5u.com熱心網友回復:
一種方法是np.isclose檢測第一個元素接近零的行:
res = [arr[np.isclose(0, arr[: ,0])] for arr in lst]
print(res)
輸出
[array([[ 0., 424., 491.]]), array([[ 0., 453., 472.]]), array([[ 0., 414., 467.]])]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/326336.html
上一篇:如何檢查資料庫及其連接是否與hikaripool或quill運行良好?
下一篇:無法寫入檔案(python)
