Вероятно, вы случайно создали одномерный массив объектов, возможно, включив строки различной длины, подобные приведенному ниже коду.
>>> t = array([randint(0,3,2) for _ in range(3)] + [3])
>>> print(t[0:2])
[array([0, 0]) array([1, 2])]
Если вы изучите массив, а не напечатаете его, это станет очевидным (обратите внимание, что dtype=object
).
>>> t
array([array([0, 0]), array([1, 2]), array([1, 1]), 3], dtype=object)
И это даст поведение, которое вы видите с flatten, что является правильным поведением для массива объектов.
>>> t.flatten()[0:2]
array([array([0, 0]), array([1, 2])], dtype=object)
edit Не печатайте массив и не пытайтесь угадать форму, используйте myVar.shape
. Это скажет вам точно, как numpy
обрабатывает данные. То же самое для количества размеров и других свойств.