0-мерные проблемы массива с `numpy.vectorize`Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 0-мерные проблемы массива с `numpy.vectorize`

Сообщение Anonymous »

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

numpy.vectorize
Удобно преобразует скалярную функцию в векторизованные функции, которые могут быть применены непосредственно к массивам. Однако при введении одного значения в векторизованную функцию выходной сигнал представляет собой 0-диментный массив вместо соответствующего типа значения, который может вызвать ошибки при использовании результата в других местах из-за проблем ввода. Мой вопрос: существует ли механизм в Numpy , который может решить эту проблему, автоматически преобразуя возвращаемое значение 0-мерного массива в соответствующий тип данных?
Для объяснения i ' D Приведите пример: < /p>

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

@np.vectorize ( excluded = ( 1, 2 ) )
def rescale (
value: float,
srcRange: tuple [ float, float ],
dstRange: tuple [ float, float ] = ( 0, 1 ),
) -> float:
srcMin, srcMax = srcRange
dstMin, dstMax = dstRange
t = ( value - srcMin ) / ( srcMax - srcMin )
return dstMin + t * ( dstMax - dstMin )
при вызове функции выше с помощью Rescale (5, (0, 10)) возвращаемое значение numpy.array (0.5) вместо просто значения 0.5 .
В настоящее время я режу эту проблему с помощью самоопределенного декоратора:

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

def vectorize0dFix ( func ):
def _func ( *args, **kwargs ):
result = func ( *args, **kwargs )
if isinstance ( result, np.ndarray ) and result.shape == ( ):
return result.item ( )
else:
return result
return _func
Но если эта проблема вызывает неприятности, в Numpy должен быть механизм, который правильно касается проблемы. Интересно, есть ли он или почему нет.


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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • 0-мерные проблемы массива с `numpy.vectorize`
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • 0-мерные проблемы массива с `numpy.vectorize`
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • 0-мерные проблемы массива с `numpy.vectorize`
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • 0-мерные проблемы массива с `numpy.vectorize`
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • 0-мерные проблемы массива с `numpy.vectorize`
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous

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