Python Numpy добавить массив по индексу массива - PullRequest
0 голосов
/ 08 мая 2018

Я борюсь с чем-то, что может быть очень простым или невозможным.

Я хочу добавить массив NumPy в другой массив NUMPY по определенному индексу.

a = np.zeros(shape=(17, 1, 2))

for i in range(10):
  b = [i]
  c = [1,2,3,4]
  b.append(c)

  # Here I want to add b in a at specific index but it's not working
  # np.append(a[i][0][0], b)

В конце я хочу что-то вроде этого:

a = [[[[0, [1,2,3,4]], ....]]]

Спасибо

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

Если следующее не близко к тому, что вам нужно, вам действительно нужно быть более конкретным, дорогой ОП.

Я признаю numpy мощной библиотекой, но вы спрашиваете об этоминициализировать нули, которые int, а затем добавить list.Вы не можете ожидать, что конструктор будет знать во время создания, что ему нужно выделить место для данных типа object.То, что вы хотите, это помочь конструктору ndarray numpy с выводом типа.

a = np.zeros(shape=(17, 1, 2), dtype=object)
for i in range(10):
  b = [i]
  c = [1,2,3,4]
  b.append(c)
  a[i] = b
a
#array([[[0, [1, 2, 3, 4]]],
#
#  [[1, [1, 2, 3, 4]]],
#
#  [[2, [1, 2, 3, 4]]],
#
#  [[3, [1, 2, 3, 4]]],
#
#  [[4, [1, 2, 3, 4]]],

#  [[5, [1, 2, 3, 4]]],

#  [[6, [1, 2, 3, 4]]],

#  [[7, [1, 2, 3, 4]]],

#  [[8, [1, 2, 3, 4]]],

#  [[9, [1, 2, 3, 4]]],

#  [[0, 0]],

#  [[0, 0]],

#  [[0, 0]],

#  [[0, 0]],

#  [[0, 0]],

#  [[0, 0]],

#  [[0, 0]]], dtype=object)
0 голосов
/ 08 мая 2018

Ваш пример не очень понятен, и вы не говорите, что на самом деле идет не так. Например, вы ничего не делаете с циклом. Также вы пытаетесь смешивать списки и массивы. Тем не менее, я думаю, что я знаю, что вы имеете в виду / нужно. Вы можете использовать вставки и добавления для списков, как показано в следующем примере:

a = []
for i in range(10):
  b = [i]
  c = [1,2,3,4]
  b.insert(1,c)
  a.append( b )
print a

Обновление

Используйте list.insert (index, obj) , чтобы вставить объект по определенному индексу.

...