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