返回行(数组),前两列大于0.1

时间:2013-11-18 23:32:08

标签: python arrays numpy matrix

我想要的简单示例:

如果前两列中的单元格(均为!!)大于0.1

,我有一个包含许多列的矩阵,我希望保留行数

类似的东西:

import numpy as np
A=np.array([[1,0,1],[1,2,5],[0,3,5],[0,0,2]])
B=np.zeros(4,3)
wildcard = np.vstack((B, A[A[:,0 and 1] > 0.1]))

显然“和”不起作用,但这就是我想要的 - 在返回到只有具有这些条件的行的新数组之前,应检查每行中的两个值。

1 个答案:

答案 0 :(得分:2)

而不是使用,你可以使用&amp ;.需要额外的括号,因为&绑定比>

更严格
a[(a[:,0] > .1) & (a[:,1] > .1)]

Ophion在评论中提出的方法也有效,但速度较慢。

In [85]: b = np.random.random((100000,3))

In [86]: %timeit np.all(b[:,:2] > 0.1, axis = 1)
100 loops, best of 3: 2.99 ms per loop

In [87]: %timeit (b[:,0] > .1) & (b[:,1] > .1)
1000 loops, best of 3: 542 us per loop