Разделить двумерный массив с условием - PullRequest
0 голосов
/ 27 марта 2019

Я хочу разделить двумерный массив на основе значения в строке 13. Ввод - это двумерный массив 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 Ответ

1 голос
/ 27 марта 2019

Векторизованная версия кода выше.

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 могут рассматриваться как неравныев ноль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...