2012-04-17 27 views
26

Sto provando ad abbattere un programma riga per riga. Y è una matrice di dati ma non riesco a trovare alcun dato concreto su cosa fa esattamente .shape[0].Cosa fa .shape [] fa in "for i in range (Y.shape [0])"?

for i in range(Y.shape[0]): 
    if Y[i] == -1: 

Questo programma utilizza numpy, scipy, matplotlib.pyplot e cvxopt.

+4

http://docs.scipy.org/doc/numpy/reference/generated/numpy.ma.shape.html o http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.shape.html#numpy.ndarray.shape –

risposta

61

L'attributo shape per gli array di numpy restituisce le dimensioni dell'array. Se Y ha n righe e m colonne, quindi Y.shape è (n,m). Quindi Y.shape[0] è n.

In [46]: Y = np.arange(12).reshape(3,4) 

In [47]: Y 
Out[47]: 
array([[ 0, 1, 2, 3], 
     [ 4, 5, 6, 7], 
     [ 8, 9, 10, 11]]) 

In [48]: Y.shape 
Out[48]: (3, 4) 

In [49]: Y.shape[0] 
Out[49]: 3 
6

shape è una tupla che fornisce un'indicazione del numero di dimensioni della matrice. Quindi, nel tuo caso, poiché il valore dell'indice di Y.shape[0] è 0, stai lavorando lungo la prima dimensione dell'array.

Da http://www.scipy.org/Tentative_NumPy_Tutorial#head-62ef2d3c0a5b4b7d6fdc48e4a60fe48b1ffe5006

An array has a shape given by the number of elements along each axis: 
>>> a = floor(10*random.random((3,4))) 

>>> a 
array([[ 7., 5., 9., 3.], 
     [ 7., 2., 7., 8.], 
     [ 6., 8., 3., 2.]]) 

>>> a.shape 
(3, 4) 

e http://www.scipy.org/Numpy_Example_List#shape ha alcuni più esempi.

+0

Grazie Awesome Levon! – HipsterCarlGoldstein

+1

@HipsterCarlGoldstein Solo una nota amichevole, se una qualsiasi di queste risposte ha risolto il problema , ti preghiamo di prendere in considerazione [accettandolo facendo clic sul segno di spunta accanto alla risposta ] (http://meta.stackexchange.com/questions/5234/how -contravvenga-accettare-una-risposta-lavoro/5235 # 5235). Questo fornirà a te e al rispondente entrambi alcuni punti di ripetizione e segnerà anche questo problema come risolto - grazie. – Levon

22

forma è una tupla che dà dimensioni della matrice ..

>>> c = arange(20).reshape(5,4) 
>>> c 
array([[ 0, 1, 2, 3], 
     [ 4, 5, 6, 7], 
     [ 8, 9, 10, 11], 
     [12, 13, 14, 15], 
     [16, 17, 18, 19]]) 

c.shape[0] 
5 

esprime il numero di righe

c.shape[1] 
4 

esprime il numero di colonne

0

In Python shape() è in uso panda per dare il numero di riga/colonna:

Numero di riga s è data da:

train = pd.read_csv('fine_name') //load the data 
train.shape[0] 

Numero di colonne è dato da

train.shape[1]