Python 基于特定行的内容从数组中删除列
我有这个阵列:Python 基于特定行的内容从数组中删除列,python,numpy,Python,Numpy,我有这个阵列: >>> arr = np.array([[12,1,2,14],[75,10,100,53]]) array([[ 12, 1, 2, 14], [ 75, 10, 100, 53]]) 我想清理我的数据。例如,我只想保留给定行大于x的列 对于行0和x=1,预期输出为: array([[ 12, 2, 14], [ 75, 100, 53]]) 对于行1和x=60,将是输出 array([[ 12,
>>> arr = np.array([[12,1,2,14],[75,10,100,53]])
array([[ 12, 1, 2, 14],
[ 75, 10, 100, 53]])
我想清理我的数据。例如,我只想保留给定行大于x的列
对于行0
和x=1
,预期输出为:
array([[ 12, 2, 14],
[ 75, 100, 53]])
对于行1
和x=60
,将是输出
array([[ 12, 2],
[ 75, 100]])
矢量化的方法是什么?您可以使用遮罩。对于第一种情况:
mask = arr[0] > x1
result = arr[:, mask]
对于第二种情况:
mask = arr[1] > x2
result = arr[:, mask]
两种情况都可以是一行程序:
arr[:, arr[0] > x1]
或
我认为第一行代码中有一个输入错误。应该是:
arr=np.array([12,1,2,14],[75,10100,53])
?感谢您的关注。我刚刚改正了;)
arr[:, arr[1] > x2]