как я могу удалить элемент в массиве numpy и использовать a для l oop в python и его индекс - PullRequest
0 голосов
/ 18 июня 2020

Это то, что я сделал, и это не работает, я сделал для l oop, и я использую его, чтобы получить индекс и использовать его в другом, почему он не работает, или я могу найти другой способ удалить элемент и использовать его индекс.

Вот часть моего кода

X1_train, X1_test, y1_train, y1_test = train_test_split(EclipseFeautres, EclipseClass, test_size=0.3, random_state=0)
E_critical_class=y1_train.copy()
E_critical_class = E_critical_class[E_critical_class != 1]
for x in range(len(E_critical_class)):
if(E_critical_class[x]==1):
    E=np.delete(E_critical_class,x)

1 Ответ

0 голосов
/ 18 июня 2020

Ваша задача - это что-то вроде фильтрации массива. Вы хотите удалить все элементы == 1 .

Предположим, что исходный массив ( arr ) содержит:

array([0, 1, 2, 3, 4, 1, 0, 3, 7, 1])

, поэтому он содержит 3 элемента == 1 (для удаления).

Намного более простой способ сделать это - использовать логическое индексирование и сохранить результат обратно в исходную переменную :

arr = arr[arr != 1]

Результат:

array([0, 2, 3, 4, 0, 3, 7])

как вы sh - со всеми одним s отброшены.

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