Python 如何基于单个列删除numpy数组中的行?
我有一个2d numpy浮点数组,我想删除该行第三列包含小于Python 如何基于单个列删除numpy数组中的行?,python,numpy,Python,Numpy,我有一个2d numpy浮点数组,我想删除该行第三列包含小于x的值的所有行 例如,[[3,4,5],[3,3,8],[4,2,1],[1,2,1],使用阈值2,输出[[3,4,5],[3,3,8],试试这个: >>将numpy作为np导入 >>>x=np.数组([[3,4,5],[3,3,8],[4,2,1],[1,2,1]) >>>x=x[x[:,2]>=2] >>>x 数组([[3,4,5], [3, 3, 8]]) 试试这个: >>将numpy作为np导入 >>>x=np.数组([[3,4
x
的值的所有行
例如,[[3,4,5],[3,3,8],[4,2,1],[1,2,1]
,使用阈值2
,输出[[3,4,5],[3,3,8]
,试试这个:
>>将numpy作为np导入
>>>x=np.数组([[3,4,5],[3,3,8],[4,2,1],[1,2,1])
>>>x=x[x[:,2]>=2]
>>>x
数组([[3,4,5],
[3, 3, 8]])
试试这个:
>>将numpy作为np导入
>>>x=np.数组([[3,4,5],[3,3,8],[4,2,1],[1,2,1])
>>>x=x[x[:,2]>=2]
>>>x
数组([[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]]
或者,您可以使用过滤器:
np.array([*filter(lambda r : r[2] >= threshold, arr)])
您可以使用列表:
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]]
或者,您可以使用过滤器:
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)
试试这个:
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)
向上投票..作为旁注,如果任何一列中有一个2(如果OP感兴趣),则此操作有效:x[np.all(x>2,axis=1)]向上投票..作为旁注,如果任何一列中有一个2(如果OP感兴趣),则此操作有效:x[np.all(x>2,axis=1)]