Ho difficoltà a capire come viene determinata la forma dell'array risultante dopo l'affettamento in numpy. Per esempio io sto usando il seguente codice semplice:Determinazione della forma della matrice di risultati dopo l'affettatura in Numpy
import numpy as np
array=np.arange(27).reshape(3,3,3)
slice1 = array[:,1:2,1]
slice2= array[:,1,1]
print "Content in slice1 is ", slice1
print "Shape of slice1 is ", slice1.shape
print "Content in slice2 is ",slice2
print "Shape of Slice2 is", slice2.shape
uscita di questo è:
Content in slice1 is
[[ 4]
[13]
[22]]
Shape of slice1 is (3, 1)
Content in slice2 is [ 4 13 22]
Shape of Slice2 is (3,)
In entrambi i casi, il contenuto è lo stesso (come dovrebbe essere). Ma differiscono nelle forme. Quindi, in che modo la forma risultante è determinata da Numpy?
http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html – Kasramvd
In sostanza: affettare non riduce il numero di dimensioni, ma con un'indicizzazione intero riduce il numero di dimensioni di 1 ogni volta. –
C'è un attributo 'shape'. Guarda 'x .__ array_interface__' per vederlo e altri attributi. – hpaulj