我有两个阵列具有相同数量的元件条件对numpy的阵列
X = [1,2,3,4,5,6,7,8,9]
Y = [10,4,3,7,7,3,1,8,98]
的我想保留的X和Y的这样的元素作为2<X<7
。我能怎么做?
确定它
Y = Y[np.logical_and(X>2, X<5)]
X = X[np.logical_and(X>2, X<5)]
非常感谢效果很好!
我有两个阵列具有相同数量的元件条件对numpy的阵列
X = [1,2,3,4,5,6,7,8,9]
Y = [10,4,3,7,7,3,1,8,98]
的我想保留的X和Y的这样的元素作为2<X<7
。我能怎么做?
确定它
Y = Y[np.logical_and(X>2, X<5)]
X = X[np.logical_and(X>2, X<5)]
非常感谢效果很好!
您可以使用numpy.logical_and
:
>>> X = np.array([1,2,3,4,5,6,7,8,9])
>>> X[np.logical_and(X>2, X<7)]
array([3, 4, 5, 6])
或者按键较少:'X [(X> 2 )&(X <7)]。 – jme 2014-10-22 14:30:20
,你可以使用一个循环和if
,也可以使用set()
为保持输精管指标:
>>> X = [1,2,3,4,5,6,7,8,9]
>>> Y = [10,4,3,7,7,3,1,8,98]
>>> X=[i for i in X if 2<i<7]
>>> Y=[i for i in Y if 2<i<7]
>>> X
[3, 4, 5, 6]
>>> Y
[4, 3, 3]
>>> set(Y)
set([3, 4])
尝试使用过滤器?你所展示的只是列表。 – 2014-09-25 09:17:50
是的抱歉,它是一个简单的Python列表,但如果解决方案与numpy更简单,我可以使用numpy数组。只有一个条件很容易。我可以使用X = X [X> 2]。我认为另一种类似的方法可能有两个值 – Fabien 2014-09-25 09:21:22