Избавляемся от вложенного цикла - PullRequest
0 голосов
/ 22 апреля 2020

Я - полный новичок в кодировании и довольно застрял в избавлении от вложенных циклов.

for i in range(A.shape[0]):
    for sublink in links:
        if A[i, sublink[0]] >= 1:
            vec = np.array(A[i]).tolist()
            vec[sublink[0]] -= 1
            vec[sublink[1]] += 1
            yield vec

Скажем, у меня есть ссылки как links = [[0,1],[1,2],[1,0],[2,1]] и A=[3,0,0,2,1,0,1,2,0] Я хочу l oop сверх массив NumPy сглаживания A таким образом, что l oop изначально работает над первыми тремя элементами A и выполняет все, что находится внутри блока for l oop. Затем l oop пробегает второй сегмент трех элементов сплющенного A и так далее.

1 Ответ

0 голосов
/ 22 апреля 2020

, если вы заинтересованы в создании вложенного l oop, и это ваша единственная цель, которую вы можете использовать Numpy.

import numpy as np

nplist = np.array(list_)

#flatten
nplist = np.ndarray.flatten(nplist)

list_ = list(nplist)



...