2012-04-17 6 views
26

Próbuję rozbić linię programu po linii. Y to macierz danych, ale nie mogę znaleźć żadnych konkretnych danych na temat tego, co dokładnie robi .shape[0].Co robi .shape [] w "dla i w zakresie (Y.shape [0])"?

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

Ten program używa numpy, scipy, matplotlib.pyplot i cvxopt.

+4

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

Odpowiedz

61

atrybut shape do NumPy tablic zwraca wymiary macierzy. Jeśli Y ma n wierszy i kolumn m, następnie Y.shape jest (n,m). Tak więc Y.shape[0] jest 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 jest krotka, która daje informację o liczbie wymiarów w tablicy. Tak więc w twoim przypadku, ponieważ wartość indeksu Y.shape[0] wynosi 0, twój pracuje nad pierwszym wymiarem twojej tablicy.

Od 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) 

i http://www.scipy.org/Numpy_Example_List#shape ma trochę więcej przykłady.

+0

Niesamowite dzięki Levon! – HipsterCarlGoldstein

+1

@HipsterCarlGoldstein Po prostu miła uwaga, jeśli któraś z tych odpowiedzi rozwiązała Twój problem rozważ [zaakceptuj to klikając znacznik wyboru obok odpowiedzi ] (http://meta.stackexchange.com/questions/5234/how -dla-akceptująca-odpowiedź-praca/5235 # 5235). To da ci i odpowiadającemu zarówno niektóre punkty rep, jak i oznaczyć ten problem jako rozwiązany - dzięki. – Levon

22

kształt jest krotka, który daje wymiary tablicy ..

>>> 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 

daje liczbę wierszy

c.shape[1] 
4 

daje liczbę kolumn

0

W Pythonie shape() jest zastosowanie w pand otrzymując liczbę od wiersz/kolumna:

numer rzędu s jest dana przez:

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

Liczba kolumn jest przez

train.shape[1]