What does .shape[] do in “for i in range(Y.shape[0])”?

匿名 (未验证) 提交于 2019-12-03 02:05:01

问题:

I'm trying to break down a program line by line. Y is a matrix of data but I can't find any concrete data on what .shape[0] does exactly.

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

This program uses numpy, scipy, matplotlib.pyplot, and cvxopt.

回答1:

The shape attribute for numpy arrays returns the dimensions of the array. If Y has n rows and m columns, then Y.shape is (n,m). So Y.shape[0] is 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 


回答2:

shape is a tuple that gives dimensions of the array..

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

Gives the number of rows

c.shape[1]  4 

Gives number of columns



回答3:

shape is a tuple that gives you an indication of the number of dimensions in the array. So in your case, since the index value of Y.shape[0] is 0, your are working along the first dimension of your array.

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

and http://www.scipy.org/Numpy_Example_List#shape has some more examples.



回答4:

In Python shape() is use in pandas to give number of row/column:

Number of rows is given by:

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

Number of columns is given by

train.shape[1] 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!