С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
 Аватар для Simply me
244 / 37 / 8
Регистрация: 05.05.2012
Сообщений: 521

Разделение numpy таблицы по условию

25.10.2020, 13:51. Показов 1401. Ответов 7

Студворк — интернет-сервис помощи студентам
Добрый день! Помогите, пожалуйста! Есть numpy-таблица с одним столбцом кортежей. Как её поделить на две, в зависимости от первого значения в кортежах, 0 или 1? Например,

Python
1
2
3
4
5
6
7
8
table = [[(0, 3, 5, 6, 7)]
         [(1, 5, 4, 3, 2)]
         [(0, 2, 6, 8, 1)]]
 
table0 = [[(0, 3, 5, 6, 7)]
          [(0, 2, 6, 8, 1)]]
 
table1 = [[(1, 5, 4, 3, 2)]]
Я бы как-то так сделала
Python
1
2
table0 = table[table[:, :][:][0]==0]
table1 = table[table[:, :][:][0]==1]
Но не работает. То есть сначала обращаюсь к кортежу таблицы, а потом к его первому элементу.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.10.2020, 13:51
Ответы с готовыми решениями:

Разделение таблицы на несколько листов по заданному условию (макрос)
Нужна помощь в разделении большой таблицы на более мелкие (в отдельные листы) по заданному условию каждого листа. Общая таблица - реестр...

Макрос: разделение таблицы на несколько по опр.условию в разные файлы
Дорогие мои, хорошие, помогите!) Я уж намучилась) Можно как-то сформулировать код, чтобы таблица раздербанилась на несколько файлов (с...

Разделение строк по условию
Добрый день, уважаемые форумчане. Помогите, пожалуйста, с макросом. Какой день бьюсь с этим, не могу справиться (не хватает опыта и...

7
Эксперт Python
8848 / 4500 / 1864
Регистрация: 27.03.2020
Сообщений: 7,316
25.10.2020, 18:47
Simply me, При сохранении структуры
Python
1
2
3
4
5
6
import numpy as np
table = np.array([[(0, 3, 5, 6, 7)],[(1, 5, 4, 3, 2)],[(0, 2, 6, 8, 1)]])
table1 = [[tuple(i[0].copy())] for i in table if i[0][0]]
table0 = [[tuple(i[0].copy())] for i in table if not i[0][0]]
print(table0)
print(table1)
1
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,758
26.10.2020, 05:17
Python
1
2
3
4
5
6
7
8
import numpy as np
table = np.array([[(0, 3, 5, 6, 7)],[(1, 5, 4, 3, 2)],[(0, 2, 6, 8, 1)]])
idx=table[:,0,0]==0
table0=table[idx,:,:]
idx=table[:,0,0]==1
table1=table[idx,:,:]
print(table0)
print(table1)
1
 Аватар для Simply me
244 / 37 / 8
Регистрация: 05.05.2012
Сообщений: 521
26.10.2020, 06:53  [ТС]
Спасибо!

u235, в строчке
Python
1
idx=table[:,0,0]==0
пишет too many indices for array

Gdez, а можно сделать, чтобы table0 и table1 получались такого же типа, как и table? Сейчас у table тип ndarray, а у table0 и table1 тип list.
0
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,758
26.10.2020, 08:11
Simply me, так у вас похоже не кортеж, а Structured array... что выдает table.dtype.names? Как вообще задается table?
0
 Аватар для Simply me
244 / 37 / 8
Регистрация: 05.05.2012
Сообщений: 521
26.10.2020, 08:24  [ТС]
Цитата Сообщение от u235 Посмотреть сообщение
что выдает table.dtype.names?
два кортежа из названий столбцов

Цитата Сообщение от u235 Посмотреть сообщение
Как вообще задается table?
результат вызова функции np.column_stack

Если явно преобразовать к массиву numpy, то в таблицах table0 и table1 лишние квадратные скобочки получаются
table1 = np.array([[tuple(i[0].copy())] for i in table if i[0][0]])
table0 = np.array([[tuple(i[0].copy())] for i in table if not i[0][0]])
0
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,758
26.10.2020, 08:46
Simply me, воооот, а при индексация в таких массивах нужно использовать именно эти названия, а не (не только) численные индексы. См. справку и примеры structured arrays.
1
 Аватар для Simply me
244 / 37 / 8
Регистрация: 05.05.2012
Сообщений: 521
26.10.2020, 08:48  [ТС]
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.10.2020, 08:48
Помогаю со студенческими работами здесь

Разделение текста по условию-содержимому
Добрый день. Прошу помочь или подсказать куда копать. Хотелка у меня такая:): из листа№№ с 1 строки обработать текст начиная со 2...

Разделение листа Excel на книги по условию
Добрый день! Помогите, пожалуйста:-[ Необходимо разделить файл выгружаемый из 1С. Можно ли, и если можно, то как макросом его поделить...

Разделение данных по условию в Excel 2003
Здравствуйте. Не уверен, что такое вообще реализуемо, но вот такой вопрос: можно ли как-нибудь разделить данные (картинка 1) на две части...

Разделение данных из строки по столбцам по условию
Всем добрый день. ранее не сталкивался с запросами, но сейчас появилась проблема, которую нужно решить, а в компании никого знающего нет....

Внести в поле таблицы сумму значений из другой таблицы по условию
Есть две таблицы данных People (плательщики) и Pays (платежи) Необходимо при занесении нового платежа в таблицу Pays для каждого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru