[Python] Come "accatastare" array numpy bidimensionali (x, y) con y variabile per formare un array numpy tri-dimensionale(z, x, y) con lo stesso dtype?

Marco Ippolito ippolito.marco a gmail.com
Gio 5 Feb 2015 15:13:32 CET


Il 5 febbraio 2015 14:43, Pietro <peter.zamb a gmail.com> ha scritto:
> 2015-02-05 13:16 GMT+01:00 Marco Ippolito <ippolito.marco a gmail.com>:
>> il mio obiettivo è avere un numpy array tri-dimensionale del tipo:
>>>>> obiettivo = np.array([[[1,2],[3,4]], [[5,6],[7,8],[9,10]]])
>>>>> np.shape(obiettivo)
>> (2,)
>>>>> obiettivo[0]
>> [[1, 2], [3, 4]]
>>>>> obiettivo[1]
>> [[5, 6], [7, 8], [9, 10]]
>>>>> np.shape(obiettivo[1])
>> (3, 2)
>>>>> np.shape(obiettivo[0])
>> (2, 2)
>> Il problema è che, non so per quale motivo, il dtype diventa 'object':
>
> Gli array devono avere delle dimensioni (shape) ben definite e non
> variabili c e d hanno shape diverse...
>
> Il tuo obbiettivo non é altro che un array di liste, le liste sono
> object, e quindi il tuo dtype diventa object.

ciao Pietro,
grazie per le tue spiegazioni.


E' come dici tu:
>>> type(obiettivo[0])
<type 'list'>

Però, se il primo elemento di obiettivo, cioè obiettivo[0], è
effettivamente una lista, non dovrebbe "funzionare" np.shape (adatto
per gli array), e non dovrebbe darmi come shape (2,2).....o mi
sbaglio?

>>> obiettivo[0]
[[1, 2], [3, 4]]
>>> np.shape(obiettivo[0])
(2, 2)

Sai per caso Pietro come si fa a "ri-convertire" la lista obiettivo[0]
in numpy array?

Marco
PS: scusami Carlos per aver scritto una domanda piuttosto lunga ed
articolata (non volevo tralasciare pezzi importanti)



>
>> C'è un modo per ottenere un array numpy tri-dimensionale(z,x,y) a
>> partire da numpy array bidimensionali(x,y) con y variabile, mantenendo
>> lo stesso dtype dei numpy array bidimensionali iniziali?
>
> si, purchè lo shape degli array che vuoi unire siano consistenti.
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python


Maggiori informazioni sulla lista Python