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