簡體   English   中英

如何刪除基於單列的numpy數組中的行?

[英]How do I delete rows in a numpy array based on a single column?

我有一個浮點數的2d numpy數組,並且我想刪除該行的第三列所包含的值小於x所有行。

例如。 具有閾值2 [[3,4,5],[3,3,8],[4,2,1],[1,2,1]] ,輸出[[3,4,5],[3,3,8]]

試試這個:

>>> import numpy as np
>>> x=np.array([[3,4,5],[3,3,8],[4,2,1],[1,2,1]])
>>> x=x[x[:,2]>=2]
>>> x
array([[3, 4, 5],
       [3, 3, 8]])

您可以使用列表理解:

import numpy as np

arr = np.array([[3,4,5],[3,3,8],[4,2,1],[1,2,1]])

threshold = 2

arr = np.array([row for row in arr if row[2] >= threshold])

print(arr)

輸出:

[[3 4 5]
 [3 3 8]]

另外,您可以使用filter

np.array([*filter(lambda r : r[2] >= threshold, arr)])

嘗試這個:

import numpy as np

array = np.array([[3,4,5],[3,3,8],[4,2,1],[1,2,1]])
array = np.array([x for x in array if x[2] >  2])
print (array)

暫無
暫無

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

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