Seite 1 von 1

liste

Verfasst: Dienstag 23. Mai 2017, 14:27
von Micha_uni
Hallo liebe Python Profis!

Könnte mir jemand erklären, warum:

Code: Alles auswählen

>>> import numpy as np
>>> x=np.arange(.5 , 1.5 , .1)
>>> print (x)
[ 0.5  0.6  0.7  0.8  0.9  1.   1.1  1.2  1.3  1.4]
>>> print(len(x))
10
>>> 
>>> y=np.arange(.4 , 1.5, .1)
>>> print(y)
[ 0.4  0.5  0.6  0.7  0.8  0.9  1.   1.1  1.2  1.3  1.4]
>>> print(len(y))
11
>>> z=np.arange(.4 , 1.6 , .1)
>>> print(z)
[ 0.4  0.5  0.6  0.7  0.8  0.9  1.   1.1  1.2  1.3  1.4  1.5  1.6]
>>> print(len(z))
13
>>> k=np.arange( .4 , 1.7 , .1)
>>> print(k)
[ 0.4  0.5  0.6  0.7  0.8  0.9  1.   1.1  1.2  1.3  1.4  1.5  1.6]
>>> print(len(k))
13
Bei Z sollte eigentlich 1.6 nicht gezählt werden. 12 Elemente sollten gezählt werden und nicht 13 .Das geschieht aber.
weiß jemand vielleicht warum?

Danke im Voraus
Liebe Grüße
Micha

Re: liste

Verfasst: Dienstag 23. Mai 2017, 14:52
von Sirius3
@Micha_uni: floating-point-Zahlen sind nicht exakt.

Code: Alles auswählen

>>> import numpy as np
>>> z=np.arange(.4 , 1.6 , .1)                                                                                                             
>>> z                                                                                                                                      
array([ 0.4,  0.5,  0.6,  0.7,  0.8,  0.9,  1. ,  1.1,  1.2,  1.3,  1.4,                                                                   
        1.5,  1.6])                                                                                                                        
>>> z[-1]                                                                                                                                  
1.5999999999999996

Re: liste

Verfasst: Dienstag 23. Mai 2017, 16:19
von BlackJack
@micha_uni: http://floating-point-gui.de/

Und eventuell suchst Du die `numpy.linspace()`-Funktion.