/ / namiesto zoznamu mumpy používame zoznam - python, numpy, python-3.x, scipy

pomocou zoznamu namiesto numpyho poľa - python, numpy, python-3.x, scipy

Štandardne mám zoznamy (a zoznamy)dátová štruktúra (väčšina mojich funkcií vracia zoznam / zoznamy zoznamov). Ale teraz musím použiť niektoré Numpy funkcie. Musím previesť všetky zoznamy na numpy pole pred použitím akejkoľvek funkcie z numpy / scipy. Napríklad

>>>x= [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>>y= [ 1, 10, 20]
>>>dot(x,y)
#array([ 81, 174, 267])
>>>X_np=array(x)
>>>y_np=array(y)
>>>dot(x_np,y_np)
#array([ 81, 174, 267])

Ako v tomto prípade, bodka (x, y) a bodka (x_np, y_np) viedli k rovnakému výsledku, takže použitie zoznamu namiesto číselného poľa nerobí rozdiel .... ale platí to pre všetky funkcie numpy / scipy alebo I musím urobiť my_np_array= array(my_list) predtým, ako zavoláte nejaké / všetky numpy / scipy funkcie?

odpovede:

3 pre odpoveď č. 1

Takmer všetky numpy / scipy funkcie prevedú vstup na pole skôr, ako na ňom začnú pracovať. Ale prečo mi veríš? Skúste podľa toho, čo potrebujete, a uvidíte, či to funguje.

Výnimkou budú všetky funkcie, ktoré upravujú pole ako napr np.put napríklad.

>>> np.put([1,2,3],[0,1],[2,1])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/numpy/core/fromnumeric.py", line 394, in put
return a.put(ind, v, mode)
AttributeError: "list" object has no attribute "put"