Python: вставка элемента в массив другого размера - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть такой пустой массив:

[[[287  26]]

 [[286  27]]

 [[285  27]]

 ...

 [[290  27]]

 [[289  26]]

 [[288  26]]]

, и я хотел бы вставить целое число и сделать его таким же, как

[
[287  26 integer]
[286  27 integer]
.......]

, поскольку первый массив имеетразмер, отличный от того, что я хочу в конце, просто использование функции insert () для меня не сработало.

Есть ли обходной путь?

Заранее спасибо.

РЕДАКТИРОВАТЬ: Итак, самое близкое, что я до сих пор пришел, это следующее:

outline_poses = []  # final array
 for cnt in cnts: # loop over each element
        outline_poses.append(cnt[0]) 
        outline_poses.append(SENSOR_MEASURED_HEIGHT) #Append this integer

Вывод:

[array([287,  26], dtype=int32), 60, array([286,  27], dtype=int32), 60,....]

Как я могу организовать этот массив и сделать его похожим[287, 26, 60],...

Ответы [ 3 ]

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

Если я правильно понимаю вашу проблему, вы можете использовать понимание списка.

newList = np.array([np.append(x[0],integer) for x in myList]) 
0 голосов
/ 03 декабря 2018

Если я прав, вы пытаетесь вставить целое число во все внутренние списки.Для этого можно использовать метод сцепления numpy.

integer_to_insert = 6
original_array = np.array([[[290,  27]],[[289,  26]],[[288,  26]]])
concat_integer = np.array([integer_to_insert]* original_array.shape[0]).reshape(original_array.shape[0], 1,1) 
# This is correct if you are inserting the same integer to all lists. But as long as length of this array is equal to length of original list this array can be replaced.

concatenated = np.concatenate([original_array, concat_integer], 2)
print(concatenated)
# array([[[290,  27,   6]],
# [[289,  26,   6]],
# [[288,  26,   6]]])
0 голосов
/ 03 декабря 2018

Это трех -мерный список, который у вас есть прямо здесь ...

>>> myList = [[[287,  26]],
 [[286,  27]],
 [[285,  27]],
 [[290,  27]],
 [[289,  26]],
 [[288,  26]]]

... поэтому вам необходимо получить доступ к вашему списку с помощью two -уровни глубины перед вставкой или добавлением элементов в самые глубокие списки.

>>> myList[0][0].append(42)
>>> myList[5][0].append(42)
>>> myList
[[[287, 26, 42]],
 [[286, 27]], 
 [[285, 27]], 
 [[290, 27]], 
 [[289, 26]], 
 [[288, 26, 42]]]

Что происходит при добавлении или добавлении элементов с меньшей глубиной? ?

Добавление на глубину 0

>>> myList.append('Catapult')
>>> myList
[[[287, 26, 42], 'Trebuchet'],
 [[286, 27]], 
 [[285, 27]], 
 [[290, 27]], 
 [[289, 26]], 
 [[288, 26, 42]],
 'Catapult']

Добавление на глубину 1

>>> myList[0].append('Trebuchet')
>>> myList[3].append('Treebuchet')
>>> myList
[[[287, 26, 42], 'Trebuchet'],
 [[286, 27]], 
 [[285, 27]], 
 [[290, 27], 'Treebuchet'], 
 [[289, 26]], 
 [[288, 26, 42]]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...