web-dev-qa-db-fra.com

Que fait .shape [] dans "pour i dans la plage (Y.shape [0])"?

J'essaie de décomposer un programme ligne par ligne. Y est une matrice de données mais je ne trouve aucune donnée concrète sur ce que .shape[0] fait exactement.

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

Ce programme utilise numpy, scipy, matplotlib.pyplot et cvxopt.

52

L'attribut shape des tableaux numpy renvoie les dimensions du tableau. Si Y a n rangées et m colonnes, alors Y.shape est (n,m). Alors Y.shape[0] est 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
93
unutbu

la forme est un tuple qui donne les dimensions du tableau.

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

Donne le nombre de lignes

c.shape[1] 
4

Donne le nombre de colonnes

32
Vivek Ananthan

shape est un tuple qui vous donne une indication du nombre de dimensions dans le tableau. Donc, dans votre cas, puisque la valeur d'index de Y.shape[0] vaut 0, vous travaillez le long de la première dimension de votre tableau.

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)

et http://www.scipy.org/Numpy_Example_List#shape a quelques exemples supplémentaires.

10
Levon

Dans Python shape() est utilisé dans pandas pour indiquer le nombre de lignes/colonnes:

Le nombre de lignes est donné par:

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

Le nombre de colonnes est donné par

train.shape[1]
3
HeadAndTail

En python, supposons que vous ayez chargé les données dans un train variable:

train = pandas.read_csv('file_name')
>>> train
train([[ 1.,  2.,  3.],
        [ 5.,  1.,  2.]],)

Je veux vérifier quelles sont les dimensions du 'nom_fichier'. J'ai mis le dossier en train

>>>train.shape
(2,3)
>>>train.shape[0]              # will display number of rows
2
>>>train.shape[1]              # will display number of columns
3
3
Drool