Почему форма пуста? - PullRequest
       0

Почему форма пуста?

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

Этот код создает массив из 10 элементов.

  1. Почему размер 1?Разве это не должно быть 0?
  2. почему форма пуста?Разве это не должно быть 1 измерение?
    In [14]: s = np.array(10)                                                                            

    In [15]: s                                                                                           
    Out[15]: array(10)

    In [16]: s.size                                                                                      
    Out[16]: 1

    In [17]: s.shape                                                                                     
    Out[17]: ()

1 Ответ

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

Если вызывать np.array() для произвольного объекта, который не может быть повторен, numpy молча создает пустой массив без измерений.Тем не менее, его размер равен 1.

Документы с пустым размером говорят нам, что x.size эквивалентен вызову np.prod(x.shape) документы для np.prod утверждают, что вызов np.prod для пустой последовательности дает нам 1. Вероятно, это так из-за того, что 1 является нейтральным элементом для умножения, что означает следующее.

Скажем, у вас есть массив [4, 2, 3].Элемент его продукта 24.Теперь вы разбили его на два массива: [4] и [2, 3].У вас есть хорошая собственность: np.prod([4, 2, 3]) == np.prod([4]) * np.prod([2, 3]).Но если один из массивов пуст, вы хотите, чтобы это свойство все еще сохранялось: np.prod([4, 2, 3]) == np.prod([]) * np.prod([4, 2, 3]).

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