Задать вопрос
@id0088

Можно ли через numpy или pandas удалить строки в многомерном массиве, элементы которого содержат два и более разных значений?

Знаю как в многомерном массиве удалить строки, если элемент содержит определенное значение.
Подскажите, пожалуйста, как через numpy или pandas это сделать.

array = [
[петя, ваня, ира]
[катя, саша, ира]
[петя, миша, ира]
[петя, миша, саша]
]

Чтоб строки 0 и 2 удалить, где и "петя" и "ира"
  • Вопрос задан
  • 72 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
Maksim_64
@Maksim_64
Data Analyst
Можно хоть в numpy, хоть в pandas. Учи что такое булевая маска. И как с ее помощью выбирать подсеты массива.
array = np.array([
['петя', 'ваня', 'ира'],
["катя", 'саша', 'ира'],
['петя', 'миша', 'ира'],
['петя', 'миша','саша'],
])

cond1 = np.any((array == 'петя'), axis=1)
cond2 = np.any((array == 'ира'), axis=1)
comb = cond1 & cond2
array[~comb]


Сейчас перечитал вопрос и смотрю, в оглавлении вопроса ты одно спрашиваешь а в самом вопросе другое.
удалить строки в многомерном массиве, элементы которого содержат два и более разных значений
это означит оставить строки только с одинаковыми значениями. изпользуй np.unique()

unique_per_row = np.array([len(np.unique(row)) for row in array])
array[unique_per_row == 1]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
30 янв. 2025, в 06:02
200000 руб./за проект
30 янв. 2025, в 04:39
2000 руб./за проект
30 янв. 2025, в 04:27
500000 руб./за проект