Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2023, 13:00   #1
igor_F
Новичок
Джуниор
 
Регистрация: 24.04.2020
Сообщений: 3
По умолчанию Сортировка внутри каждого списка списков с делением на группы

ну не могу никак с этим справиться )

есть список списков (np.ndarray)
[[14, 5, 17, 8, 14, 17, 11, 15], [8, 11, 14, 15, 7, 11, 9, 4]]
или просто список (те же цифры) в таком виде
[14, 5, 17, 8, 14, 17, 11, 15, 8, 11, 14, 15, 7, 11, 9, 4]

надо провести сортировку так что бы
получилось
[[5,8,14,17,11,14,15,17],[8,11,14,15,4,7,9,11]]
или так
[5,8,14,17,11,14,15,17,8,11,14,15,4, 7,9,11]

т.е. каждую группу по 8 цифр разбиваем на две группы по 4 цифры и сортируем их по возрастанию.

Последний раз редактировалось igor_F; 03.03.2023 в 13:29.
igor_F вне форума Ответить с цитированием
Старый 03.03.2023, 17:31   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

Не сомневаюсь, что можно найти и другое решение, но это так, быстро:
Код:
import numpy as np

list_ = np.array([[14, 5, 17, 8, 14, 17, 11, 15], [8, 11, 14, 15, 7, 11, 9, 4]])
print(*list_)
# Делаем срезы и выполняем сортировку:
# np.sort(list_[0:2, 0:4]) Срез строится для каждой "строки":
# тут 0 и 1 (2 не входит в срез) и четырех элементов (4 - не входит в срез)
# Объединяем срезы: np.hstack()
m = np.hstack([np.sort(list_[0:2, 0:4]), np.sort(list_[0:2, 4:8])])
print(*m)
ИТОГО:
Код:
Исходный список:  [14  5 17  8 14 17 11 15] [ 8 11 14 15  7 11  9  4]
      Результат:  [ 5  8 14 17 11 14 15 17] [ 8 11 14 15  4  7  9 11]
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 03.03.2023, 18:37   #3
igor_F
Новичок
Джуниор
 
Регистрация: 24.04.2020
Сообщений: 3
По умолчанию

отлично выполняет функцию деления и сортировки спасибо!
но если отрывать файла в котором эти данные (class 'list' и форма записи данных как в сообщении) возникает ошибка
list indices must be integers or slices, not tuple
или такая в зависимости от попыток решить
IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed

Последний раз редактировалось igor_F; 03.03.2023 в 19:03.
igor_F вне форума Ответить с цитированием
Старый 03.03.2023, 22:50   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

Я не учился на экстрасенса.
Без кода трудно догадаться что вы написали.
Так, например, ошибка вида: list indices must be integers or slices, not tuple
могла бы говорить о том, что в качестве разделителя была поставлена запятая, а не двоеточие.
tuple - это кортеж, неизменяемый объект.

Ошибку вида: IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed
можно попытаться объяснить тем, что при построении среза неверно задана первая группа индексов, которая указывает на строки двумерного массива, а ваш массив одномерный.
Для получения среза одномерного массива надо использовать только параметры среза.

Больше информации по этой теме можно получить в Сети по запросу, например: "Numpy построение срезов".
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 04.03.2023, 13:35   #5
igor_F
Новичок
Джуниор
 
Регистрация: 24.04.2020
Сообщений: 3
По умолчанию

спасибо за помощь!

удалось все решить создавая и открывая файл как "ХХ.npy" .
как только сохранил файл
np.save('array1',data)
а потом его открыл
data = np.load('array1.npy')
все встало на свои места )

и сортировку на основании вашего кода сделал разбив на два массива, как я и планировал в дальнейшем
data1=np.sort(data[0:N,0:4])
data2=np.sort(data[0:N,4:8])

Последний раз редактировалось igor_F; 04.03.2023 в 14:48.
igor_F вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
После каждого элемента списка добавьте ту часть списка, которая была перед ним - Pascal ABC Panchess Паскаль, Turbo Pascal, PascalABC.NET 6 10.04.2017 11:12
Visual Prolog - сортировка пузырьком списка списков don_zaresh Помощь студентам 0 11.11.2016 21:13
Составить программу ведения списка учебной группы, для каждого учащегося сохранить оценки экзаменов Andrew1992 Паскаль, Turbo Pascal, PascalABC.NET 1 14.11.2011 00:21
известен год рождения каждого человека из группы NewArtist Помощь студентам 2 16.06.2011 06:59
Сортировка места в рейтинге списка группы ASaid Microsoft Office Excel 2 21.03.2010 11:33