2012-04-17 39 views
26

我正在嘗試逐行分解程序。 Y是數據矩陣,但我找不到什麼.shape[0]不正是任何具體數據。。在範圍(Y.shape [0])中,我爲「i.shape []」做了什麼?

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

該程序使用numpy,scipy,matplotlib.pyplot和cvxopt。

+4

http://docs.scipy.org/doc/numpy/reference/generated/numpy.ma.shape.html或http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.shape.html#numpy.ndarray.shape – 2012-04-17 22:46:46

回答

61

numpy數組的shape屬性返回數組的維數。如果Y具有n行和m列,則Y.shape(n,m)。所以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是一個元組,它爲您提供了數組中維數的指示。所以你的情況,因爲Y.shape[0]索引值是0,你沿着你的數組的第一個維度的工作。

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) 

http://www.scipy.org/Numpy_Example_List#shape有一些更 例子。

+0

非常感謝Levon! – HipsterCarlGoldstein 2012-04-17 22:50:11

+1

@HipsterCarlGoldstein只是一個友好的注意,如果提供的這些答案中的任何一個解決您的問題 請考慮(http://meta.stackexchange.com/questions/5234/how [點擊旁邊 答案對號接受它] -does接受-的回答工作/ 5235#5235)。這 會給你和回答者都向着好的方向,也標記爲解決這個問題 - 感謝。 – Levon 2012-06-17 19:31:08

22

形狀是一個元組,使該陣列的尺寸..

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

給出的行數

c.shape[1] 
4 

給出列

0

的數目在Python shape()是熊貓使用給出行數/列數:

行數s的計算公式如下:

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

列數由

給出
train.shape[1] 
相關問題