Разница, когда выходной массив или квадратные скобки - PullRequest
0 голосов
/ 07 декабря 2018

Я пытаюсь понять, в чем разница (если есть) между этими двумя выходами.

array([array([203., 164.,  87., ...,   1.,   1.,   0.]),
       array([39., 44., 40., ..., 40., 30., 21.]),
       array([152., 144., 133., ...,  36.,  36.,  36.])], dtype=object)

И

array([[ 0.,  0.,  5., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ..., 10.,  0.,  0.],
       [ 0.,  0.,  0., ..., 16.,  9.,  0.],
       ...,
       [ 0.,  0.,  1., ...,  6.,  0.,  0.],
       [ 0.,  0.,  2., ..., 12.,  0.,  0.],
       [ 0.,  0., 10., ..., 12.,  1.,  0.]])

Для меня обе эти структуры являются двумерными массивами.Но по какой-то причине один из них напечатан по-другому.

Я пытаюсь передать первую структуру сложной функции (svm.SVC.fit).Второй работает, но первый не работает:

, устанавливающий элемент массива с последовательностью

, хотя мне они кажутся точно такими же ...

1 Ответ

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

Как я отметил в своем комментарии, они не оба 2D-массива.Первый - это одномерный массив формы (N, ).Вы пытаетесь создать массив NumPy с подмассивами переменной длины.Когда это происходит, numpy приводит тип массива к object и делает его одномерным. Вы должны избегать этого любой ценой , поскольку это исключает многие преимущества использования numpy в первую очередь.

Обычный подход - это заполнение подмассивов, чтобы они все были единообразными.длина, но что бы вы ни делали, вы не должны использовать numpy с неровными массивами.

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