1

我有一个最大值为num的numpy数组。我想通过newMaxValue/num来缩放数组中的所有值,以便数组的新最大值为newMaxValue。我试图将数组转换为浮点数,然后进行分割,但我似乎无法成功分割和乘数。我总是以零值数组结束。 这样做的正确方法是什么? 感谢Numpy:如何通过整数值缩放整数数组?

回答

4

确保您最大转换为float

>>> from numpy import array 
>>> a = array([1, 2, 3, 4, 5]) 
>>> new_max = 6 
>>> a/max(a)   # This is probably what happens to you 
array([0, 0, 0, 0, 1]) 
>>> a/float(max(a))  # Convert that integer to a float and it'll work 
array([ 0.2, 0.4, 0.6, 0.8, 1. ]) 
>>> a/float(max(a)) * new_max 
array([ 1.2, 2.4, 3.6, 4.8, 6. ]) 
2
import numpy as np 
newMax = 20 
myarr = np.random.randint(10, size=(10,2)) 
newarr = (myarr/float(np.amax(myarr))*newMax 

PS:发布您的代码,你可能做了一个简单的编码错误。