Поместите массив списков numpy в матрицу numpy в соответствующих позициях - PullRequest
1 голос
/ 15 марта 2020

У меня есть следующий массив numpy, содержащий списки внутри

example=np.array(([[1, 2, 3], [4, 5], [6,7]]))

print(example)
[list([1, 2, 3]) list([4, 5]) list([6, 7])]

Я хотел бы поместить эти значения в соответствующие значения массива numpy любого подходящего размера. Например, у меня есть следующая матрица:

[[14021982. 14021982. 14021982.]
[14021982. 14021982. 14021982.]
[14021982. 14021982. 14021982.]]

Поэтому я хочу, чтобы вывод был

[[1. 2. 3.]
[4. 5. 14021982.]
[6. 7. 14021982.]]

Есть ли эффективный способ сделать это в python независимо от размера двух размеров матриц?

РЕДАКТИРОВАТЬ: Я также хочу знать, если это возможно сделать это для матрицы меньшего размера:

например, я хочу поместить входные данные

print(example)
[list([1, 2, 3]) list([4, 5]) list([6, 7])] 

в следующую матрицу

  [[14021982. 14021982.]
  [14021982. 14021982.]
  [14021982. 14021982.]]

, что приведет к

    [[1. 2.]
    [4. 5.]
    [6. 7.]]

1 Ответ

1 голос
/ 15 марта 2020

Вы можете заменить значения на индексы

example = [[1, 2, 3], [4, 5], [6, 7]]
target = np.array([...])

for i, j in enumerate(example):
    size = min(len(j), len(target[i]))
    target[i][0:size] = j[:size]

print(target)

Вывод

target = np.array([[14021982, 14021982, 14021982],
                   [14021982, 14021982, 14021982],
                   [14021982, 14021982, 14021982]])

[[       1        2        3]
 [       4        5 14021982]
 [       6        7 14021982]]

---------------------------------------------------------

target = np.array([[14021982, 14021982],
                   [14021982, 14021982],
                   [14021982, 14021982]])

[[1 2]
 [4 5]
 [6 7]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...