liste

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Micha_uni
User
Beiträge: 15
Registriert: Dienstag 23. Mai 2017, 12:14

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
Zuletzt geändert von Anonymous am Dienstag 23. Mai 2017, 15:16, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
Sirius3
User
Beiträge: 17747
Registriert: Sonntag 21. Oktober 2012, 17:20

@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
BlackJack

@micha_uni: http://floating-point-gui.de/

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