Python 如何获取NumPy数组中的特定行?

Python 如何获取NumPy数组中的特定行?,python,python-3.x,numpy,Python,Python 3.x,Numpy,我想得到第三个数字是0或1的行 下面是data.txt: 34.62365962451697,78.0246928153624,0 30.28671076822607,43.89499752400101,0 35.84740876993872,72.90219802708364,0 60.18259938620976,86.30855209546826,1 79.0327360507101,75.3443764369103,1 将.txt加载到numpy数组后: data_np=np.load

我想得到第三个数字是0或1的行

下面是data.txt:

34.62365962451697,78.0246928153624,0
30.28671076822607,43.89499752400101,0
35.84740876993872,72.90219802708364,0
60.18259938620976,86.30855209546826,1
79.0327360507101,75.3443764369103,1
将.txt加载到numpy数组后:

data_np=np.loadtxt("ex2data1.txt", delimiter=',')

如何操作?

同时使用布尔索引和/或两个条件:

rows_to_keep = data_np[data_np[:,2] == 0 | data_np[:,2] == 1]
使用

O/p:

筛选第三个数字为0或1的行

O/p

ab.text文件

您可以尝试以下方法:

    new_data_np = []
    for i in range(data_np.shape[0]):
        if data_np[i,2]==0 or data_np[i,2]==1:
            print(data_np[i,:])
            #store data_np[i,:]
            new_data_np.append(data_np[i,:])

OP的可能副本要求不同的内容:他们想要第三列为0或1的行,而不是只加载第三列column@GPhilo答案已更新。
[0. 0. 0. 1. 1.]
import numpy as np

def filter_lines(f):
    for i, line in enumerate(f):
        t_n = line.split(",")[2][0].strip()
        if t_n == '0' or t_n == '1':
            yield line

with open("ab.text") as f:
    data_np=np.loadtxt(filter_lines(f), delimiter=',')
    print(data_np)
[[34.62365962 78.02469282  0.        ]
 [30.28671077 43.89499752  0.        ]
 [35.84740877 72.90219803  0.        ]
 [60.18259939 86.3085521   1.        ]
 [79.03273605 75.34437644  1.        ]
 [99.03273605 95.34437644  1.        ]]
34.62365962451697,78.0246928153624,0
30.28671076822607,43.89499752400101,0
35.84740876993872,72.90219802708364,0
60.18259938620976,86.30855209546826,1
79.0327360507101,75.3443764369103,1
82.0327360507101,76.3443764369103,2
89.0327360507101,75.3443764369103,3
99.0327360507101,95.3443764369103,1
    new_data_np = []
    for i in range(data_np.shape[0]):
        if data_np[i,2]==0 or data_np[i,2]==1:
            print(data_np[i,:])
            #store data_np[i,:]
            new_data_np.append(data_np[i,:])