0
0 комментариев

Python 3.8, NumPy 1.17.4, Windows 10, PyCharm 2019.2.4 (Community Edition).

Здравствуйте.
Помогите, пожалуйста, советом\подсказкой решить задание самостоятельно.

Задание:
Сгенерировать двумерный целочисленный массив a размерностью m x n из случайных чисел в диапазоне от -x до +y , предусмотрев возможность ручного ввода элементов массива.
Используя два типа сортировки (пузырьковая, шелла), отсортировать элементы массива a по строкам начиная с элемента a[k,l] и заканчивая элементом a[c,d], k>=c (l<=d). Остальные элементы массива не сортировать и оставить на первоначальных местах. Дополнительный массив не заводить.
Отсортированный массив записать в файл.

У меня получилось сделать:

# Просим пользователя определить масив
m = input("Введите значение m (колличество строк): ")
n = input("Введите значение n (колличество столбцов): ")
x = input("Введите значение x: ")
y = input("Введите значение y: ")

# Проверяем значение x, если оно не отрицательное то делаем его отрицательным
if int(x) > 0:
x_1 = int(x) * -1
else:
x_1 = int(x)

# Создаем массив a
import numpy as np
a = np.random.randint(x_1, int(y), size = (int(m), int(n)))

print("На основании введенных Вами данных сформирован массив 'a':")
print(a)

#Просим пользователя определить какие данные будут выбраны ил массива a для сортировки
k = input("Введите значение k: ")
c = input("Введите значение c: ")
l = input("Введите значение l: ")
d = input("Введите значение d: ")

k_c = np.arange(int(k), int(c))
l_d = np.arange(int(l), int(d))

#Функция для выбора данных из массива a
def f():
return a[np.ix_(k_c,l_d)]

Этим получилось решить пункты:
1. Сгенерировать двумерный целочисленный массив a размерностью m x n из случайных чисел в диапазоне от -x до +y.
2. предусмотрев возможность ручного ввода элементов массива.
3. определить функцию с элемента a[k,l] и заканчивая элементом a[c,d], k>=c (l<=d) для последующей сортировки.

Не понимаю как отсортировать данные с элемента a[k,l] и заканчивая элементом a[c,d], k>=c (l<=d) и поместить их обратно в массив a.
Супер если подскажите что именно использовать и что не так с моим кодом.

Спасибо!

Отредактированный вопрос
Добавить комментарий