Conversation
EvgrafovMichail
left a comment
There was a problem hiding this comment.
Итог:
- 1 задача: 5/10 с возможностью повысить до 10/10
- 2 задача: 10/10
- 3 задача: 0/10 с возможностью повысить до 10/10
| def compute_poly_vectorized(abscissa: np.ndarray) -> np.ndarray: ... | ||
|
|
||
| def compute_poly_vectorized(abscissa: np.ndarray) -> np.ndarray: | ||
| return np.add(np.add(np.multiply(np.power(abscissa, 2), 3), np.multiply(abscissa, 2)), 1) |
There was a problem hiding this comment.
Очень сложно читать такую запись. Для улучшения понятности лучше было бы использовать операторную форму записи:
| return np.add(np.add(np.multiply(np.power(abscissa, 2), 3), np.multiply(abscissa, 2)), 1) | |
| return (abscissa ** 2) * 3 + 2 * abscissa + 1 |
Оценку за это не снижаю, но имейте в виду на будущее.
| if lhs.shape[1] != rhs.shape[1]: | ||
| raise ShapeMismatchError | ||
|
|
||
| return np.sqrt(np.sum((lhs[:, None, :] - rhs[None, :, :]) ** 2, axis=2)) |
There was a problem hiding this comment.
Почему использовали None в этой записи? Пока поставлю 0 за эту задачу. Но вы можете оспорить его очно после семинара и получить полный балл за эту задачу.
| inclination = np.arccos(applicates / r) | ||
|
|
||
| return ( | ||
| (abscissa**2 + ordinates**2 + applicates**2) ** 0.5, |
There was a problem hiding this comment.
Зачем считать r второй раз, если вы уже сделали это в 31 строчке?
| raise ShapeMismatchError | ||
|
|
||
| r = (abscissa**2 + ordinates**2 + applicates**2) ** 0.5 | ||
| inclination = np.arccos(applicates / r) |
There was a problem hiding this comment.
Так делать небезопасно, r может быть равна 0.
| return ( | ||
| (abscissa**2 + ordinates**2 + applicates**2) ** 0.5, | ||
| np.arctan2(ordinates, abscissa), | ||
| np.nan_to_num(inclination, nan=0), |
There was a problem hiding this comment.
0 / 0 даст nan, но в inclination могут быть еще значения inf, как будете обрабатывать эту ситуацию?
| ) | ||
|
|
||
|
|
||
| def convert_to_sphere( |
There was a problem hiding this comment.
За эту функцию 0, т.к. она некорректно обрабатывает некоторые входные значения.
|
|
||
| min_ind = (ordinates[:-2] > ordinates[1:-1]) & (ordinates[1:-1] < ordinates[2:]) | ||
|
|
||
| return np.where(min_ind)[0] + 1, np.where(max_ind)[0] + 1 |
There was a problem hiding this comment.
Пока 0. Можете поднять до 10, если сможете пояснить этот код очно после семинара.
No description provided.