循环遍历数组列以查找所需的值python

时间:2017-07-07 10:51:37

标签: python arrays numpy

我有最小值和最大值,我也有70X3阵列。我想从数组的第二列中找到所有值,这些值在最小值和最大值的范围内,并为这些值导出数组的所有3列。

例如

A=[2,3,4
   3,5,6
   5,5,5
   5,6,7
   10,11,22
   3,50,6]

最大值为11,min为5,矩阵的结果类似于

B=[3,5,6
   5,5,5
   5,6,7
   10,11,22]

到目前为止,我所做的是:

for i in MatrixA[:,1]):
    if i<maximum and i>minimum:
        aa.append(i)
aa=np.asarray(aa)

但是这只能从第二列找到我需要的值范围而不是第1列和第3列中的相应值

2 个答案:

答案 0 :(得分:2)

您可以使用

A[numpy.logical_and(5 <= A[:, 1], A[:, 1] <= 11), :]

答案 1 :(得分:2)

使用简单的 numpy 表达式:

import numpy as np
a = np.array([[2,3,4],[3,5,6], [5,5,5], [5,6,7],[10,11,22], [3,50,6]])
b = a[(a[:,1] >= 5) & (a[:,1] <= 11)]

print(b)

输出:

[[ 3  5  6]
 [ 5  5  5]
 [ 5  6  7]
 [10 11 22]]
  • a[:,1] - 考虑指定轴(1轴,第2列)的值