Почему я не могу создать простой массив, подобный этому: array ([1, 2], 3) - PullRequest
2 голосов
/ 24 декабря 2010
from numpy import array
test_list = [[1,2],3]
x = array(test_list) #ValueError: setting an array element with a sequence.

По сути, у меня есть точка с двумя координатами и шкалой, и я пытался поместить несколько на ndarray, но сейчас я не могу этого сделать. Я мог бы просто использовать [1,2,3], но мне любопытно, почему я не могу сохранить этот тип списка в массиве.

Ответы [ 2 ]

3 голосов
/ 24 декабря 2010

Это сбой, потому что массив не прямоугольный.Если мы изменим 3 на [3, 4], то это сработает.

>>> array([[1, 2], [3, 4]])
array([[1, 2],
       [3, 4]])
0 голосов
/ 19 сентября 2013

Вы можете сделать

x = array([[1,2],3], dtype=object_)

, который даст вам массив с общим типом "object" dtype.Но это не очень далеко.Даже если бы вы сделали

x = array([array([1,2]),3], dtype=object_)

, у вас был бы массив x [0], но вы все равно не могли бы индексировать x [0,0], вам нужно будет выполнить x [0] [0].

Обидно;Есть места, где было бы полезно сделать такие вещи, а затем выполнить x.sum (1) и получить [3, 3] в результате.(Вы всегда можете сделать карту (сумма, х).)

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