Что [i ,:] означает в Python? - PullRequest
       4

Что [i ,:] означает в Python?

0 голосов
/ 01 февраля 2019

Итак, я закончил одну часть этого задания, которое мне нужно сделать.Есть только одна часть задания, которая не имеет никакого смысла для меня.

Я делаю модель LinearRegression и в соответствии с другими мне нужно применить ans[i,:] = y_poly в самом конце, но я так и не получил ответа на вопрос, почему.

Может кто-нибудь объяснить мне, что означает [i,:]?Я не нашел никаких объяснений в Интернете.

Ответы [ 3 ]

0 голосов
/ 01 февраля 2019

Полагаю, вы также используете numpy для манипулирования данными (в виде матрицы)?

Если на основе numpy, ans[i,:] означает выбор ith 'строки' из ansсо всеми его «колоннами».Обратите внимание, что при работе с массивами numpy мы должны (почти) всегда использовать [i, j] вместо [i][j].Это может быть нелогичным, если вы ранее использовали Python или Java для манипулирования матрицей.

0 голосов
/ 01 февраля 2019

Я думаю, что в этом случае [] означает, что оператор индексирования для объекта класса, который можно использовать, определяя ключ getitem , метод

class A:
    def __getitem__(self, key):
        pass

, может быть буквально любым.В вашем случае ключ «[1 ,:]» - это кортеж, содержащий «1» и фрагмент (None, None, None).Такой ключ может быть полезен, если ваш класс представляет многомерные данные, к которым вы хотите получить доступ через оператор [].Предложенный другими ответами это может быть пустой массив:

Вот краткий пример того, как может работать такая многомерная индексация:

class A:
    values = [[1,2,3,4], [4,5,6,7]]
    def __getitem__(self, key):
        i, j = key
        if isinstance(i, int):
            i = slice(i, i + 1)
        if isinstance(j, int):
            j = slice(j, j + 1)
        for row in self.values[i]:
            print(row[j])

>>>a = A()
>>>a[:,2:4]
[3, 4]
[6, 7]
>>>a[1,1]
[5]
>>>a[:, 2]
[3]
[6]
0 голосов
/ 01 февраля 2019

Он специфичен для модуля numpy, используемого в большинстве модулей для обработки данных.

ans[i,:] = y_poly

это назначение вектора фрагменту двумерного массива (назначение фрагментов).Автономный пример:

>>> import numpy
>>> a = numpy.array([[0,0,0],[1,1,1]])
>>> a[0,:] = [3,4,5]
>>> a
array([[3, 4, 5],
       [1, 1, 1]])

Существует также назначение срезов в базовом питоне, используя только одно измерение (a[:] = [1,2,3])

...