gpt4 book ai didi

python - NumPy 数组以 0 和 1 为界?

转载 作者:太空狗 更新时间:2023-10-30 00:14:29 26 4
gpt4 key购买 nike

基本上我有一个数组,它可以在任意两个数字之间变化,我想在将其限制在 [0,1] 空间内的同时保留分布。执行此操作的功能非常简单。我通常写成:

def to01(array):
array -= array.min()
array /= array.max()
return array

当然,它可以而且应该更复杂地考虑大量情况,例如所有值都相同(除以零)和 float 与整数除法(使用 np.subtract 和 np.divide 而不是运算符).但这是最基本的。

问题是我经常在我的项目中跨项目执行此操作,这似乎是一个相当标准的数学运算。 NumPy 中是否有执行此操作的内置函数?

最佳答案

不知道是否有一个内置的(可能没有,按原样做并不是一件很难的事情)。您可以使用 vectorize 将函数应用于数组的所有元素:

def to01(array):
a = array.min()
# ignore the Runtime Warning
with numpy.errstate(divide='ignore'):
b = 1. /(array.max() - array.min())
if not(numpy.isfinite(b)):
b = 0
return numpy.vectorize(lambda x: b * (x - a))(array)

关于python - NumPy 数组以 0 和 1 为界?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25796309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com