Что означает «пустая фигура», начинающаяся с нуля? - PullRequest
0 голосов
/ 12 декабря 2018

Хорошо, я обнаружил, что вы можете иметь массивы с нулями в их форме.Для случая, когда у вас есть 0 в качестве единственного измерения, это имеет смысл для меня.Это пустой массив.

np.zeros(0)

Но случай, когда у вас есть что-то вроде этого:

np.zeros((0, 100))

, сбивает меня с толку.Почему это определяется так?

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Что ж, в данном конкретном случае два оператора эквивалентны:

print(np.zeros(0))
>>>[]

print(np.zeros((0,100)))
>>>[]

Это потому, что пустой массив - это пустой массив.Ваша интуиция верна там.Если вы введете:

np.zeros(10)

или

np.zeros((1,10))

, вы также получите тот же массив, а именно [0,0,0,0,0,0,0,0,0,0].Форма имеет значение только тогда, когда вы ссылаетесь на число, которое фактически меняет форму массива.Например:

print(np.zeros((2,3)))
>>>[[0,0,0]
   [0,0,0]]

, но:

print(np.zeros((3,2)))
>>>[[0,0]
    [0,0]
    [0,0]]

Ничего особенно непрозрачного в этом нет.Ваш здравый смысл на самом деле применяется здесь.Если массив пуст, ни одно из других измерений, добавляемых в него, не имеет значения.

0 голосов
/ 12 декабря 2018

Насколько я знаю, это просто избыточный способ выражения пустого массива.Кажется, для python не имеет значения, есть ли у вас строки «пустота».

Допустим, у нас есть массив give a:

import numpy as np

a = np.zeros((0,100))

Если мы распечатаем все, что мы получим, этосам пустой массив:

print(a)

>>> []

Более того, мы действительно можем видеть, что, несмотря на это, он сохраняет свою форму "

np.shape(a)

>>> (0, 100)

Но если вы попытаетесь получить доступ к данному элементу по позиции, например:

print(a[0])

или

print(a[0][0])

Вы получаете IndexError:

IndexError: index 0 is out of bounds for axis 0 with size 0

Поэтому я считаю, что математическое значение пустых массивов, несмотря на форму, которую вы назначаетеим то же самое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...