2013-05-22 3 views
1

파이썬에서 최소 float 배열을 찾으려면 어떻게해야합니까? min() 또는 array.min()이 작동하지 않았습니다. 다음은 코드입니다.파이썬에서 최소 float 배열

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

그래 ... 그것은 옳은 대답이다. 어쩌면 당신은'z [np.abs (z) .argmin()]'최소 크기의 수를 원할 것입니까? – Geoff

+1

올바른 것처럼 보입니다. 숫자의 크기를 줄이는 10의 부정적인 힘을 보는 것을 잊고 있습니까? –

답변

3

np.min()은 가장 작은 숫자 또는 "가장 큰"음수 (있는 경우)를 반환합니다. 이 경우 인덱스 7의 항목이 최소 항목입니다. scientific notation-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 

답을 확인하려면 .

z <= z.min() 

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

하나 더 예를

제로에 가장 가까운 수는 다음과 같이 찾을 수 있습니다 긴 손에 과학적 표기법 1.06954166e-09 = 1.069 * 10^-09 또는 0.000000000106...입니다

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

.

+1

그건 그렇고, 아마도이 모든 것을 필요로하지 않았을 것입니다. 나는 미래의 독자들에게 도움이 될 것이라고 생각했다. – Geoff

5

z_min = -0.63417062312627426는 정답과 같이 보인다. 과학 표기법에주의하십시오.