Size: a a a

2021 June 12

D

Denis in Science FYI
у меня функция почти вся состоит из нумпаевских операций

https://pastebin.com/Vuh4QyLP
источник

D

Denis in Science FYI
я сейчас читаю про numpy.vectorize, она как  то компилирует функции
источник

M

Mike in Science FYI
Ага, 5 минут
источник

D

Denis in Science FYI
в 7 строке срез, что бы скрипт не вешался на час)
источник

DF

Dollar Føølish in Science FYI
источник

DF

Dollar Føølish in Science FYI
они ничего не компилирует
источник

M

Mike in Science FYI
Да, np.vectorize не может ничего скомпилировать на самом деле, она просто дергает питоновский код.
источник

M

Mike in Science FYI
А "твоя функция" - это что?
line_dot_3d_dist, которая применяется к img_arr?
источник

M

Mike in Science FYI
Она, насколько я вижу, полностью векторная, только я не понимаю, что она она делает, но её, судя по всему можно переписать как композицию.
источник

M

Mike in Science FYI
Ты считаешь расстояние до какой-то прямой?
источник

D

Denis in Science FYI
img_arr это список пикселей  
он представляется облаком точек в 3д пространстве
и рассчитывается линия вдоль которой распределены эти точки

координаты концов линии живут в   p_comp_a, p_comp_b


функция берет эти концы, и rgb значения (координаты в 3д пространстве)
и считает расстояние пикселя до линии по перпендикуляру
источник

M

Mike in Science FYI
А, понял, ты считаешь, насколько пиксели облака отклоняются от "тренда".
источник

D

Denis in Science FYI
да
источник

D

Denis in Science FYI
скорее всего нужно в самой line_dot_3d_dist оперировать матрицами, а не отдельными пикселями
но я пока не придумал как
источник

M

Mike in Science FYI
Тогда, на мой взгляд, надо сделать так.
Сначала перенести все точки облака так, чтобы прямая проходила через 0. Это векторная операция.
Потом скалярно умножить на нормированный вектор этой прямой, это тоже векторная операция, дающая проекцию на эту прямую. Это векторная операция.
Потом посчитать скалярный квадрат всего облака. Это векторная операция.
Потом вычесть из скалярного квадрата облака квадрат проекции на прямую. Это векторная операция.
Потом извлечь квадратный корень из разности.

Чтобы не возиться с многомерными массивами, я бы, действительно, его сплющил сразу в развертку.
источник

M

Mike in Science FYI
Ну то есть суть в том, что ты придумываешь, как для одного вектора из облака посчитать расстояние до прямой, а потом это применяешь ко всему облаку.
источник

M

Mike in Science FYI
Квадрат расстояния до прямой, проходящей через 0 - это квадрат длины вектора минус квадрат его проекции на эту прямую.
источник

D

Denis in Science FYI
заработало) теперь считается почти мгновенно
источник

M

Mike in Science FYI
Вот!
источник

DP

Danilo Podlesniy-Sub... in Science FYI
Ребят, а это вообще норм продавать мотивационные письма в зарубежные университеты? Это же легко выяснить кто его купил, но а если это будет решающим для кандидатов с купленным и не купленным письмом? Кто что думает? Стоит это обсуждения? *Среди них нет писем по направлениям физики, математики, CS
https://is.gd/2Fo1Ng
источник