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ď č. 1Mali 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
aleboempty
.
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)