Numpy:如何按整数值缩放整数数组?

时间:2012-12-06 03:33:14

标签: python arrays numpy multidimensional-array integer-division

我有一个numpy数组,其最大值为num。我想通过newMaxValue / num缩放数组中的所有值,以便数组的新最大值为newMaxValue。我试图将数组转换为float并在之后进行除法,但我似乎无法将其成功分割和相乘。我总是以零值数组结束。 这样做的正确方法是什么? 感谢

2 个答案:

答案 0 :(得分: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. ])

答案 1 :(得分:2)

import numpy as np
newMax = 20
myarr = np.random.randint(10, size=(10,2))
newarr = (myarr/float(np.amax(myarr))*newMax

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