1

Pythonで最小のフロート配列を見つけるにはどうすればよいですか? min() または array.min() が機能しませんでした。コードは次のとおりです。

import numpy as np

z=np.array([[ -4.26141957e-01],
       [ -2.26582552e-01],
       [ -7.28807682e-03],
       [  2.72843324e-02],
       [ -5.59146620e-02],
       [ -2.06062340e-05],
       [  1.06954166e-09],
       [ -6.34170623e-01],
       [  5.07841198e-02],
       [ -1.89888605e-04]])

z_min=z.min()

を与えz_min = -0.63417062312627426ます。私はMatlabユーザーなので、これは私を混乱させます...

4

2 に答える 2

5

z_min = -0.63417062312627426正しい答えのように見えます。科学表記法に注意してください。

于 2013-05-22T13:32:08.263 に答える
3

np.min()最小の数値、または「最大の」負の数値 (存在する場合) を返します。この場合、インデックス 7 のエントリが最小エントリです。それは-6.34 * 10^-1科学表記法、または-0.634...長い表記法です。

オールロングハンド印刷

おそらくこれが役立ちます:

print "\n".join(["%+0.10f" % e for e in z])

-0.4261419570
-0.2265825520
-0.0072880768
+0.0272843324
-0.0559146620
-0.0000206062
+0.0000000011
-0.6341706230
+0.0507841198
-0.0001898886

答えを確認するには

以下は、この最小値を持つエントリが 1 つだけであることを示しています。

z <= z.min()

array([[False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [False]], dtype=bool)

もう1つの例

ゼロに最も近い数は、次のように見つけることができます。

z[np.abs(z).argmin()]

これは、科学的表記法またはロングハンドでの = です1.06954166e-091.069 * 10^-090.000000000106...

于 2013-05-22T13:36:25.447 に答える