2017-07-07 53 views
-1

我有一個最小值和最大值,我也有一個70X3數組。我想從數組的第二列中找到最小值和最大值範圍內的所有值,併爲這些值導出數組的所有3列。循環訪問數組列,以找到所需的值python

例如

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

最大值爲11分鐘,是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

可以使用

A[numpy.logical_and(5 <= A[:, 1], A[:, 1] <= 11), :] 
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列)