Вопрос по numpy, python, matplotlib, scipy – Что делает .shape [] в «для i в диапазоне (Y.shape [0])»?

38

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

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

Эта программа использует numpy, scipy, matplotlib.pyplot и cvxopt.

Ваш Ответ

5   ответов
3

В питонеshape() используется в пандах для указания номера строки / столбца:

Количество строк определяется как:

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

Количество столбцов определяется как

train.shape[1]
1

Предположим, что в 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
79

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
8

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 есть еще Примеры.

Круто спасибо Левон! HipsterCarlGoldstein
@HipsterCarlGoldstein Просто дружеское замечание, если какой-либо из приведенных ответов решил вашу проблему, пожалуйста, подумайтеaccepting it by clicking the checkmark next to the answer, Это даст вам и ответчику несколько очков репутации, а также пометит эту проблему как решенную - спасибо.
28

форма представляет собой кортеж, который дает размеры массива ..

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

Дает количество столбцов

Похожие вопросы