У меня есть этот код для фильтрации большого массива NumPy (6000000 строк) из нулевых строк.
nonZero_training_data=[]
for i in get_training_data:
if (np.equal(i[0],[[0,0,0,0],[0,0,0,0]]).all()):
continue
nonZero_training_data=nonZero_training_data+[i]
каждая строка в массиве выглядит следующим образом: [(массив ([[x1, x2, x3, x4]), [x1, x2, x3, x4]]), y),]
Но время выполнения велико, может занять минуту или больше.
Это первые 5 строк в get_training_data:
array([[array([[0.2, 0., 0., 0.],
[0.9, 0., 0., 3.]]),
1],
[array([[0., 4., 1., 0.],
[0., 0., 1., 0.]]), 1],
[array([[2., 0., 7., 0.],
[0., 0., 1., 8.]]),
0],
[array([[0., 5., 0., 2.],
[0., 8., 0., 1.]]),
0],
[array([[0., 1., 0., 1.],
[0., 5., 0., 0.]]),
1]], dtype=object)
Есть ли более эффективный способ сделать это?
Извините за мой английский, я буду признателен за любые исправления.