是否有像 numpy.clip(a, a_min, a_max) 这样的函数,其中 a_min 和 a_max 之外的值被包裹而不是饱和?
Is there a function like numpy.clip(a, a_min, a_max) where values outside a_min and a_max are wrapped rather than saturated?
对于给定的整数 numpy 数组,我可以使用 numpy.clip(a,a_min,a_max) 将此数组中的值饱和到任意最小值和最大值。
我想知道是否有一个 numpy 函数或技巧可以做到这一点,而不是使值饱和,而是包装它们。
我知道如果我创建一个具有特定整数数据类型(例如:int8)的 numpy 数组,那么我将对 [-128,128) 之外的值具有这种包装行为。但是,我想要可定制的边界,
即,我如何将值包装在 [-10,10)?
之间的数组中
例如,假设我有一个名为 wrap() 的函数,那么我会将其用作:
import numpy
a = numpy.array([10,5,-11,5],dtype=numpy.int64)
b = wrap(a,min = -10, max = 10)
然后我希望 b 等于:
array([-10,5,9,5], dtype = int64)
提前致谢。
如果我对问题的理解正确,您可以使用
获得所需的输出
>>> ((a - min) % (max - min)) + min
array([-10, 5, 9, 5])
%
运算符换行值(采用 mod),它的其余部分只是设置正确的换行范围。
对于给定的整数 numpy 数组,我可以使用 numpy.clip(a,a_min,a_max) 将此数组中的值饱和到任意最小值和最大值。 我想知道是否有一个 numpy 函数或技巧可以做到这一点,而不是使值饱和,而是包装它们。
我知道如果我创建一个具有特定整数数据类型(例如:int8)的 numpy 数组,那么我将对 [-128,128) 之外的值具有这种包装行为。但是,我想要可定制的边界, 即,我如何将值包装在 [-10,10)?
之间的数组中例如,假设我有一个名为 wrap() 的函数,那么我会将其用作:
import numpy
a = numpy.array([10,5,-11,5],dtype=numpy.int64)
b = wrap(a,min = -10, max = 10)
然后我希望 b 等于:
array([-10,5,9,5], dtype = int64)
提前致谢。
如果我对问题的理解正确,您可以使用
获得所需的输出>>> ((a - min) % (max - min)) + min
array([-10, 5, 9, 5])
%
运算符换行值(采用 mod),它的其余部分只是设置正确的换行范围。