-4

次のような数値範囲があります。

[0.31622776601683794, 0.26591479484724945, 0.24028114141347545, 0.22360679774997896, 
 0.21147425268811282, 0.20205155046766235, 0.19441308418139638, 0.1880301546543197, 
 0.18257418583505536, 0.17782794100389226]

最初の項目が 1、最後の項目が 0 で、他のすべての項目が元のリストに相対的な間隔を維持するように、番号の範囲を再スケーリングしたいと思います。

また、リスト内のすべての値を最終リストに追加して 1 にする必要があります。最初の項目を除く。

私は数学がまったく苦手なので、誰かがこれを行う方法を知っているなら、私は非常に感謝しています...

4

2 に答える 2

2

あなたは不可能なことを求めます。

最小数が 0 で最大数が 1 の場合、合計は 1 より大きくなります (最大数を除いてすべての数が等しい場合を除きます)。また、数値間の絶対距離を維持したい場合は、両方ではなく、最小または最大のいずれかを設定できます。

ただし、役立つコードがいくつかあります。numpy 配列がある場合a:

a-=np.min(a)

最小値を 0 に設定します。

と:

a/=np.max(a)

最大値を 1 に設定します。

と:

a/=np.sum(a)

合計を 1 に設定します。

于 2013-08-06T12:37:45.243 に答える