最大値numのnumpy配列があります。配列の新しい最大値が newMaxValue になるように、配列内のすべての値を newMaxValue/num でスケーリングしたいと思います。配列をfloatに変換してから除算を試みましたが、除算と乗算がうまくいかないようです。私は常にゼロ値の配列になってしまいます。これを行う正しい方法は何ですか?ありがとう
質問する
15270 次
2 に答える
4
maxを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. ])
于 2012-12-06T03:38:55.840 に答える
2
import numpy as np
newMax = 20
myarr = np.random.randint(10, size=(10,2))
newarr = (myarr/float(np.amax(myarr))*newMax
PS: コードを投稿してください。おそらく単純なコーディングミスを犯したでしょう。
于 2012-12-06T03:46:01.157 に答える