/ / Naozaj podivné správanie s pohyblivou čiarou pojmového poľa - python, polia, numpy, floating-point

Skutočne podivné správanie s pohyblivou čiarou s pochybnými poľami - python, polia, numpy, floating-point

V prvom rade pracujem s numpy a zažívam veľmi zvláštne problémy s poli s pohyblivou rádovou čiarkou.

Toto je veľmi základný a pravdepodobne mi chýba niečo veľmi jasné - môže mi niekto povedať, aký je problém?

Tieto dva riadky kódu

arr1 = numpy.ndarray([1.0, 2.0])
print "arr1: ", arr1

vyrobiť tento výstup:

arr1:  [[  1.49166815e-154  -1.32750723e-315]]

To nie je správne Čo robím zle?

Ďakujeme za pomoc!

odpovede:

4 pre odpoveď č. 1

Mali by ste používať numpy.array na vytvorenie poľa nie numpy.ndarray. numpy.ndarray je rozhranie nízkej úrovne a vo väčšine prípadov numpy.array by mali byť použité na vytvorenie poľa.

In [5]: arr1 = numpy.array([1.0, 2.0])

In [6]: arr1
Out[6]: array([ 1.,  2.])

Podpis numpy.ndarray:

ndarray(shape, dtype=float, buffer=None, offset=0, strides=None, order=None)

Takže prvým argumentom je shape nie pole. Takže tlkot vyplnil pole s nejakými náhodnými údajmi.

Z dokumentačného reťazca z numpy.ndarray:

Polia by mali byť skonštruované pomocou array, zeros alebo empty.


2 pre odpoveď č. 2

Argument, ktorý špecifikujete, je tvar. Ak chcete vyplniť údaje, musíte špecifikovať argument vyrovnávacej pamäte.

np.ndarray(shape=(1,2), buffer=np.array([1,2]), dtype=float)