Was macht .shape [] in "für i in range (Y.shape [0])"?

76

Ich versuche, ein Programm Zeile für Zeile aufzuschlüsseln. Yist eine Datenmatrix, aber ich kann keine konkreten Daten darüber finden, was .shape[0]genau funktioniert.

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

Dieses Programm verwendet numpy, scipy, matplotlib.pyplot und cvxopt.

HipsterCarlGoldstein
quelle

Antworten:

126

Das shapeAttribut für Numpy-Arrays gibt die Dimensionen des Arrays zurück. Wenn Yhat nZeilen und mSpalten, dann Y.shapeist (n,m). So Y.shape[0]ist es auch 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
unutbu
quelle
44

Form ist ein Tupel, das die Abmessungen des Arrays angibt.

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

Gibt die Anzahl der Zeilen an

c.shape[1] 
4

Gibt die Anzahl der Spalten an

Vivek Ananthan
quelle
11

shapeist ein Tupel, das Ihnen die Anzahl der Dimensionen im Array angibt. In Ihrem Fall Y.shape[0]arbeiten Sie also an der ersten Dimension Ihres Arrays , da der Indexwert 0 ist.

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

und http://www.scipy.org/Numpy_Example_List#shape enthält einige weitere Beispiele.

Levon
quelle
2
@HipsterCarlGoldstein Nur eine freundliche Anmerkung: Wenn eine dieser Antworten Ihr Problem gelöst hat, können Sie sie akzeptieren, indem Sie auf das Häkchen neben der Antwort klicken . Dies gibt Ihnen und dem Antwortenden einige Wiederholungspunkte und markiert dieses Problem auch als gelöst - danke.
Levon
5

Angenommen, Sie haben in Python die Daten in einem variablen Zug geladen:

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

Ich möchte überprüfen, welche Abmessungen der 'Dateiname' hat. Ich habe die Datei im Zug gespeichert

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

In Python shape()wird in Pandas die Anzahl der Zeilen / Spalten angegeben:

Die Anzahl der Zeilen wird angegeben durch:

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

Die Anzahl der Spalten wird durch angegeben

train.shape[1]
HeadAndTail
quelle
0

shape() besteht aus einem Array mit zwei Argumenten, Zeilen und Spalten.

Wenn Sie suchen, erhalten shape[0]Sie die Anzahl der Zeilen. shape[1]wird Ihnen die Anzahl der Spalten gegeben.

ajay
quelle