Numpy: Что мне следует учитывать при принятии решения о том, где разместить размеры пакета в функциях моего класса, чтобPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Numpy: Что мне следует учитывать при принятии решения о том, где разместить размеры пакета в функциях моего класса, чтоб

Сообщение Anonymous »

Я пишу код, используя numpy, который включает в себя векторы, матрицы и функции от векторов к матрицам. В частности, я заинтересован в запуске этих функций для многих векторов и многих матриц таким образом, чтобы использовать функции векторизации numpy для значительного ускорения циклов for.
Что я заметил, так это что удобное место для размещения этих «пакетных» измерений не согласуется между встроенными функциями numpy и matplotlib, которые я использую, и, поскольку я относительно новичок в размышлениях о таких вещах, я не уверен, как интерпретировать почему это так и как это должно повлиять на то, как я пишу свой код.
Например, если я хочу сопоставить двумерный вектор с матрицей, например

Код: Выделить всё

def f(x):
return np.array([[np.sin(x[0]), np.cos(x[1])               ],
[np.cos(x[1]), np.cos(x[0]) + np.sin(x[1])]])
Тогда в этой функции удобнее всего помещать размеры партии в последнюю очередь. Если входные данные имеют форму (2, ...), то выходные данные имеют форму (2, 2, ....), так что положение размеров пакета согласовано, синтаксис очень читабелен и интуитивно понятен, как я хочу. вести себя. Поскольку эти точки интерпретируются как точки в евклидовом пространстве, возможность отображать точки в чем-то вроде matplotlib с помощью plt.scatter(*x) также чрезвычайно удобна.
С другой стороны, если бы я захотел затем диагонализировать эту партию матриц или умножить их с помощью np.matmul и т. д., мне пришлось бы поменять местами оси на конечные, поскольку все эти функции ожидают, что размеры партии будут в спереди.
У меня нет никаких проблем с отслеживанием этого. Суть того, что мне действительно интересно, заключается в том, являются ли (маленькие) обручи, через которые я прыгаю, чтобы работать с f(x) для удобной работы с функциями numpy, признаком того, что я делаю что-то «неправильно» или « неинтуитивен для нового пользователя» в реальном интерфейсе методов моего класса, хотя сами функции кажутся мне, как парню, который их отлаживает, намного понятнее.

Подробнее здесь: https://stackoverflow.com/questions/791 ... dimensions
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»