Заполните массив numpy другим массивом numpy - PullRequest
0 голосов
/ 05 августа 2020

У меня есть следующие numpy массивы:

    whole = np.array(
        [1, 0, 3, 0, 6]
    )

    sparse = np.array(
        [9, 8]
    )

Теперь я хочу заменить каждый ноль в массиве целым в хронологическом порядке элементами в разреженном массив. В этом примере желаемый массив будет выглядеть так:

    merged = np.array(
        [1, 9, 3, 8, 6]
    )

Я мог бы сам написать небольшой алгоритм, чтобы исправить это, но если кто-то знает эффективный по времени способ решить эту проблему, я был бы очень благодарен за вашу помощь!

1 Ответ

2 голосов
/ 05 августа 2020

Считаете ли вы, что sparse имеет ту же длину, что и нули в целом?

Если да, вы можете сделать:

import numpy as np
from copy import copy

whole = np.array([1, 0, 3, 0, 6])
sparse = np.array([9, 8])

merge = copy(whole)
merge[whole == 0] = sparse

если длины не совпадают, вы должны ограничить до нужной длины с помощью len (...) и нарезки.

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