簡體   English   中英

從 numpy 數組中刪除一些數組元素

[英]Delete some array elements from numpy array

我有 numpy 陣列:

a = np.array([[ 255,255,255],
              [ 255,2,255],
              [ 3,123,23],
              [ 255,255,255],
              [ 0, 255, 3]])

我想刪除所有帶有 [255,255,255] 的元素,結果應該是:

[[ 255,2,255],
 [ 3,123,23],
 [ 0, 255, 3]])

我試過:

import numpy as np
a = np.array([[ 255,255,255],
              [ 255,2,255],
              [ 3,123,23],
              [ 255,255,255],
              [ 0, 255, 3]])

np.delete(a, [255,255,255])

但什么也沒發生。

你可以這樣做:

np.array([x for x in a if np.any(x != 255)])

這使:

array([[255,   2, 255],
       [  3, 123,  23],
       [  0, 255,   3]])

編輯:為了避免列表理解 -

np.delete(a, np.where((a == 255).all(axis=1)), axis=0)

這是一種快速的矢量化方法

a[(a!=255).any(axis=1),:]
Out[136]: 
array([[255,   2, 255],
       [  3, 123,  23],
       [  0, 255,   3]])

暫無
暫無

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

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