2016-09-19 2 views
-1

numpy 배열에서 조각을 가져 와서 더 큰 배열에 할당하고 싶습니다. 슬라이스는 64 길이 여야하며 소스 배열에서 균등하게 추출해야합니다. 나는 시도 다음numpy 배열의 조각에 값 할당

r = np.arange(0,magnitude.shape[0],step) 
magnitudes[counter:counter+len(r),ch] = magnitude[r:r+64] 

나는 위의 코드를 시도 할 때 나는 다음과 같은 오류가 발생합니다 :

TypeError: only integer arrays with one element can be converted to an index 

슬라이싱을 달성하기 위해 가장 파이썬 방법은 무엇입니까?

+0

예제를 제공 할 수 있습니까? –

답변

2

magnitude[r:r+64] 여기서 r은 배열입니다. 슬라이스의 변수는 magnitude[[1,2,3]:[5,6,7]]이 아닌 magnitude[3:67] 스칼라 여야합니다. 여러 조각을 수집 할 경우

당신은 빠른을 찾기 위해 노력하고, 이에 대한

In [345]: x=np.arange(10) 
In [346]: [x[i:i+3] for i in range(4)] 
Out[346]: [array([0, 1, 2]), array([1, 2, 3]), array([2, 3, 4]), array([3, 4, 5])] 
In [347]: np.array([x[i:i+3] for i in range(4)]) 
Out[347]: 
array([[0, 1, 2], 
     [1, 2, 3], 
     [2, 3, 4], 
     [3, 4, 5]]) 

다른 SO 질문을 살펴 보았다 변화처럼 뭔가를해야하지만, 어떤 종류의 루프 또는 목록 해결하기 어렵다 이해.

나는이 답변으로 작업하고 새로운 질문과 작은 실습 예제로 돌아가서 더 많은 속도가 필요하다고 생각하면 좋습니다.