Numpy:如何按整数值缩放整数数组?
Posted
技术标签:
【中文标题】Numpy:如何按整数值缩放整数数组?【英文标题】:Numpy: How to scale an integer array by an integer value? 【发布时间】:2012-12-06 03:33:14 【问题描述】:我有一个最大值为 num 的 numpy 数组。我想通过 newMaxValue/num 缩放数组中的所有值,以便数组的新最大值是 newMaxValue。我试图将数组转换为浮点数并在之后进行除法,但我似乎无法成功地对其进行除法和相乘。我总是以一个零值数组结束。 这样做的正确方法是什么? 谢谢
【问题讨论】:
【参考方案1】:确保将最大值转换为 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:贴出你的代码,你可能犯了一个简单的编码错误。
【讨论】:
以上是关于Numpy:如何按整数值缩放整数数组?的主要内容,如果未能解决你的问题,请参考以下文章
python使用numpy的np.power函数计算numpy数组中每个数值的指定幂次(例如平方立方)np.power函数默认返回整数格式np.float_power函数默认返回浮点数
Haskell - 按整数值对带有字符串的列表进行排序的函数
python使用numpy的np.float_power函数计算numpy数组中每个数值的指定幂次(例如平方立方)np.power函数默认返回整数格式np.float_power函数返回浮点数