0
import numpy as np
np.random.seed(5)
x = np.random.randint(0,10,12)
# array([3, 6, 6, 0, 9, 8, 4, 7, 0, 0, 7, 1])
x
의 여러 하위 어레이를 각각 하나의 값 (예 : 평균)으로 대체하려고합니다. 부분 배열 이상 :파이썬 : 배열의 여러 슬라이스를 하나의 값으로 대체하십시오.
# given the start and end indices for THREE subarrays of x
subary_start, subary_end = np.array([0, 2, 8]), np.array([1, 3, 10])
for i, j in zip(subary_start, subary_end):
val = np.mean(x[i:j+1]) # avg. over the subarray
print(val)
# 4.5, 3, 2.33
예상 출력은 array([4.5, 3, 9, 8, 4, 7, 2.33, 1])
될 것이다.
일반적으로 len(x)
은 10 만 개가 될 수 있으며 수백 개의 슬라이스가있을 수 있으므로 효율적인 해결책이 좋습니다.
당신의 솔루션은 작동합니까? – wwii
'np.mean()'이 이미 가장 효율적인 방법으로 구현되었습니다. –
슬라이스의 시작과 인덱스는 항상 별도의 ndarrays에 포함되어 있습니까? – wwii