массивы действительно используют это.

py существует некоторая операция среза, например, [1: 3,3: 5], однако меня смущают операции a [:] и a [...], я новичок в python, может кто-нибудь объяснить, что разница между этими?

 Sraw26 дек. 2017 г., 08:35
Поддерживает ли Pythona[...]?
 Sraw26 дек. 2017 г., 08:39
@ cᴏʟᴅsᴘᴇᴇᴅ Я думаю, что это было помечено как дубликат неправильного вопроса, так как я думаю, что OP задает вопросnumpy.
 coldspeed26 дек. 2017 г., 08:33
In python, there exists some slicing operation like a[1:3,3:5] ... не в питоне.
 coldspeed26 дек. 2017 г., 08:41
@Sraw Нет, списки Python, которые не поддерживают индексацию оператора многоточия (это делают массивы numpy). Кроме того, вопрос не помечен NumPy, и я не склонен вновь открыть это ...
 Chris Martin26 дек. 2017 г., 08:42
Есть что-то под названиемэллипсис но документация явно не удосуживается сказать, что это значит.

Ответы на вопрос(2)

Решение Вопроса

... это многоточие, в чистом Python это в основном не оператор. Он служит заполнителем для кода, такого как в этом случае:

Внутри NumPy это служит аналогичной цели, это оператор «не срезать». Поскольку numpy поддерживает несколько слайсов одновременно, это может быть полезно. Например, чтобы получить разные ребра куба:

In [1]: import numpy

In [2]: cube = numpy.arange(3**3).reshape(3, 3, 3)

In [3]: cube
Out[3]:
array([[[ 0,  1,  2],
        [ 3,  4,  5],
        [ 6,  7,  8]],

       [[ 9, 10, 11],
        [12, 13, 14],
        [15, 16, 17]],

       [[18, 19, 20],
        [21, 22, 23],
        [24, 25, 26]]])

In [4]: cube[0, ..., 0]
Out[4]: array([0, 3, 6])

In [5]: cube[..., 0, 0]
Out[5]: array([ 0,  9, 18])

In [6]: cube[0, 0, ...]
Out[6]: array([0, 1, 2])

Необходимо отметить, что... функционально идентичен: в случаях выше, но это может быть различным для многомерных объектов:

In [7]: cube[..., 0]
Out[7]:
array([[ 0,  3,  6],
       [ 9, 12, 15],
       [18, 21, 24]])

In [8]: cube[:, 0]
Out[8]:
array([[ 0,  1,  2],
       [ 9, 10, 11],
       [18, 19, 20]])

В многомерных объектах... вставляет: столько раз, сколько необходимо для достижения полного измерения

 Schaffer26 дек. 2017 г., 14:21
Хорошее объяснение, спасибо!

... означает 0 или больше:, Сами по себе они наиболее полезны на LHS (но смотритеЕсть ли канонический способ получения 0D numpy subarray? для использования RHS)

   

присваивает 1 всем элементамarr, Он работает для всех измерений, включая массив 0d.

arr[:] =1

Работает для 1d-массива, и потому что автоматически добавляются конечные ':', также и массивы более высокого размера. Это не работает на 0d массивах.

Объект PythonEllipsis https://docs.python.org/dev/library/constants.html#Ellipsis

используется интерпретатором при генерации операции индексации

a[...]   # implemented as
a.__getitem__((Ellipsis,))

Точно так же ':' преобразуется вslice(None) объект.

Обычные объекты Python, такие как списки, ничего не делают сEllipsis, ноnumpy массивы действительно используют это.

Ваш ответ на вопрос