带条件拆分2D numpy数组

时间:2019-03-26 23:36:45

标签: python arrays numpy tuples

我想基于第13行中的值拆分2D数组。 输入是2D Numpy数组,但是我无法弄清楚如何将数组创建为输出,因为np.append给了我一些建议。 (因此,例如,我不能在其上使用np.median)

import numpy as np

D = np.load('train_data.npy')

E = []
F = []

for i, item in enumerate(D):
    if D[i][13]==0:
        np.append(E,item)
    else:
        np.append(F,item)

threshold=np.median(E[:, 7])
#Throws error, because E is a now tuple. It works on D.

1 个答案:

答案 0 :(得分:1)

上面代码的向量化版本。

import numpy as np
E = D[np.isclose(D[:,13], 0)].ravel().tolist()
F = D[~np.isclose(D[:,13], 0)].ravel().tolist()

使用浮点数时最好使用几乎相等的比较,因为在某些情况下(由于内存中数字表示的错误),例如1.0e-20可能被视为不等于零。