2012-04-17 51 views
26

Estoy tratando de desglosar un programa línea por línea. Y es una matriz de datos, pero no puedo encontrar ningún dato concreto sobre lo que .shape[0] hace exactamente.¿Qué hace .shape [] en "for i in range (Y.shape [0])"?

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

Este programa usa numpy, scipy, matplotlib.pyplot y 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 –

Respuesta

61

El atributo shape para matrices numpy devuelve las dimensiones de la matriz. Si Y tiene n filas y m columnas, entonces Y.shape es (n,m). Entonces Y.shape[0] es 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 es una tupla que proporciona una indicación del número de dimensiones de la matriz. Por lo tanto, en su caso, dado que el valor de índice Y.shape[0] es 0, está trabajando a lo largo de la primera dimensión de su matriz.

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

y http://www.scipy.org/Numpy_Example_List#shape tiene algunos ejemplos más .

+0

Awesome gracias Levon! – HipsterCarlGoldstein

+1

@HipsterCarlGoldstein Solo una nota amistosa, si alguna de estas respuestas proporcionó su problema resuelto , considere [aceptarlo haciendo clic en la marca de verificación junto a la respuesta ] (http://meta.stackexchange.com/questions/5234/how -does-accepting-a-answer-work/5235 # 5235). Este le dará a usted y al que responde tanto algunos puntos de repetición como este problema como resuelto, gracias. – Levon

22

forma es una tupla que da dimensiones de la matriz ..

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

da el número de filas

c.shape[1] 
4 

Da número de columnas

0

En Python shape() es su uso en pandas para dar el número de fila/columna:

Número de fila s viene dada por:

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

Número de columnas está dada por

train.shape[1] 
Cuestiones relacionadas