Б12-514 Рябоконь Илья#189
Conversation
|
Прошу также обратить внимание, что этот commit из ветки main, а первый commit по этому заданию был сделан с ветки work_place (ещё до 12, там просто всё поломалось и пришлось на основной ветке всё исправлять) |
| ) -> np.ndarray: | ||
| # ваш код | ||
| return image | ||
| if kernel_size < 1 or kernel_size % 2 == 0: |
| window = padded_image[i : i + kernel_size, j : j + kernel_size] | ||
| result[i, j] = np.mean(window) | ||
|
|
||
| elif image.ndim == 3: |
There was a problem hiding this comment.
Можно было без if, чтобы решение было проще
|
|
||
| for i in range(height): | ||
| for j in range(width): | ||
| for k in range(channel): |
There was a problem hiding this comment.
Можно было избавится от последнего for, просто указав axis у np.mean
| raise ValueError("threshold must be positive") | ||
|
|
||
| return 0, 0 | ||
| pixels = image.flatten() |
There was a problem hiding this comment.
Есть np.unique, которая быстрее
|
|
||
| return 0, 0 | ||
| pixels = image.flatten() | ||
| zeros = np.zeros(256, dtype=np.int64) |
There was a problem hiding this comment.
Лучше было бы 256 вынести в константу, чтобы было сразу понятно, что вы имеете ввиду количество цветов, и еще вы несколько раз используетее это число
| raise ShapeMismatchError | ||
|
|
||
| det = np.linalg.det(matrix) | ||
| if det == 0: |
There was a problem hiding this comment.
Во-первых, как вы можете помнить из первого семестра, делать == между 2 числами float - это не правильно.
Во-вторых, использование детерменанта для определения сингулярности матрицы - это ошибка, так как при вычислении детерменанта из-за компьютерных ошибок вы можете получить любое число.
| I_K = np.eye(K) | ||
| revers_bracket = I_K + composition | ||
|
|
||
| if np.linalg.det(revers_bracket) == 0: |
| ) -> bool: | ||
| M, N = costs.shape | ||
|
|
||
| if costs.ndim != 2 or len(resource_amounts) != M or len(demand_expected) != N: |
There was a problem hiding this comment.
вместо len лучше использовать .shape, все-таки мы в numpy
|
|
||
| resources_needed = costs @ demand_expected | ||
|
|
||
| if np.any(resources_needed > resource_amounts): |
There was a problem hiding this comment.
А почему не так?!
return not np.any(resources_needed > resource_amounts):| ) -> None: | ||
| # ваш код | ||
| pass | ||
| if abscissa.shape != ordinates.shape: |
There was a problem hiding this comment.
Слишком большая функция получилась, тяжело читать код. Так еще и много повторяющегося кода
| import numpy as np | ||
|
|
||
|
|
||
| def visualize_mitral_regurgitation(json_path: str = "medic_data.json") -> None: |
There was a problem hiding this comment.
Слишком большая функция получилась, тяжело читать код.
| from matplotlib.animation import FuncAnimation | ||
|
|
||
|
|
||
| def animate_wave_algorithm( |
There was a problem hiding this comment.
Не дождался результата для большого лабиринта
There was a problem hiding this comment.
Лично у меня лабиринт считался 1.5 минуты, после чего создавался gif-файл. Отрисовывался дольше, т.к. 2 кадра в секунду.
There was a problem hiding this comment.
Я ждал 2 минуты на оба лабиринта (вместе запускал)
| from matplotlib.animation import FuncAnimation | ||
|
|
||
|
|
||
| def animate_wave_algorithm( |
There was a problem hiding this comment.
Функции в 90 строк кода усложняют его понимание, лучше делить такие функции на несколько поменьше
| from matplotlib.animation import FuncAnimation | ||
|
|
||
|
|
||
| def animate_wave_algorithm( |
There was a problem hiding this comment.
Объединять вычисления и отрисовку в одной функции не стоит
Исправление недочётов