두 개의 같은 크기의 목록이 있다고 가정합니다. 첫 번째 목록에는 0과 1 만 포함되며 두 번째 목록의 초기 값은 고정 된 숫자와 같습니다. 두 번째 배열의 다른 값은 첫 번째 목록의 동일한 색인 값에 따라 다릅니다. 이들 사이의 관계는 첫 번째 목록의 값이 0 인 경우 두 번째 목록의 동일한 색인 값이 이전 색인과 같고 다른 모든 경우는 다른 값과 같습니다. 내 질문을 명확히하기 위해 for 루프의 도움으로 아래 코드를 작성했습니다. for 루프없이 문제를 해결하는 방법은 무엇입니까?numpy 배열의 논리적 반복
Code
a = np.array([0, 1, 0, 0, 0, 1, 0, 0, 1])
b = np.zeros_like(a)
b[0] = 5
for i in range(1, a.size):
if a[i] == 0:
b[i] = b[i-1]
else:
b[i] = np.random.randint(5)
시공 명시 적으로 이전의 반복에 의존하기 때문에, 전혀은 벡터화 할 수 없습니다 간단합니다. 꼭 그런 것은 아닙니다 * 어렵지만 어렵습니다. –
'a' 배열에 인접한 배열이 없다면 쉽게 할 수 있습니다. 그럴 수 있니? –
알아, 어렵다. 하지만, "scipy.signal.lfiler"기능과 같은 직접적인 해결책이 있는지 여부를 찾으려고합니다. 이 함수를 사용하면 이전의 수치에 의존하는 수치 적 반복을 수행 할 수 있습니다. –