Що робить .shape [] в “для i в діапазоні (Y.shape [0])”?


77

Я намагаюся розбити програму за рядками. Yє матрицею даних, але я не можу знайти конкретних даних про те, .shape[0]що саме робить.

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

Ця програма використовує numpy, scipy, matplotlib.pyplot та cvxopt.


Відповіді:


127

shapeАтрибут для Numpy масивів повертає розміри масиву. Якщо 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

44

shape - це кортеж, який задає розміри масиву ..

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

Дає кількість стовпців


11

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 має ще кілька прикладів.


2
@HipsterCarlGoldstein Просто дружнє зауваження, якщо будь-яка із цих відповідей вирішила вашу проблему, будь ласка, подумайте про її прийняття, клацнувши галочку біля відповіді . Це дасть вам і відповідачеві обидва пункти повторення, а також позначить цю проблему як вирішену - спасибі.
Левон,

5

Припустимо, у python ви завантажили дані в якийсь змінний поїзд:

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

Я хочу перевірити, якими розмірами є "ім'я_файлу". Я зберігав файл у поїзді

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

4

У Python shape()використовується використання в пандах, щоб вказати номер рядка / стовпця:

Кількість рядків визначається:

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

Кількість стовпців задано

train.shape[1]

0

shape() складається з масиву, що має два аргументи, рядки та стовпці.

якщо ви шукаєте, shape[0]це дасть вам кількість рядків. shape[1]will дав вам кількість стовпців.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.