我有一个数组
a = np.array([[1, 2.0, 3],
[1.23,2.5,3],
[1,4.6,4.9]])
我想检查第二列中每个值的整数,如果是整数则保留该行。我已经尝试过了。
for i in range(0,len(a)):
try:
if a[i,1].is_integer()==False:
a=np.delete(a,(i),axis=0)
except IndexError:
continue
输出:
array([[1. , 2. , 3. ],
[1. , 4.6, 4.9]])
所需的输出: array([[1. , 2. , 3. ]])
失败原因::删除一行后,下面的i
行将向上移动。无需使用delete
即可获得所需的输出。
答案 0 :(得分:4)
您可以使用np.floor
,如下所示:
output = a[a[:, 1] == np.floor(a[:, 1])]
或者,您可以使用astype(int)
,如下所示:
output = a[a[:, 1] == a[:, 1].astype(int)]
希望有帮助。
答案 1 :(得分:4)
output = a[np.mod(a[:, 1], 1) == 0]