2017-01-22 2 views
0

신경망을 배우고 있으며 일부 프로세스를 자동화하려고합니다. 지금 데이터 세트를 무작위로 284807x31 조각으로 분할하는 코드가 있습니다. 그런 다음 입력과 출력을 분리해야합니다. 즉, 마지막 열까지 전체 배열을 선택해야하며 마지막 열만 선택해야합니다. 어떤 이유로이 작업을 올바르게 수행하는 방법을 알 수 없으며 위에서 설명한대로 세트를 분리하고 분리하는 데 어려움이 있습니다.NumPy - 배열을 변경하기 위해 열과 행 번호를 가져 오는 중

train, test, cv = np.vsplit(data[np.random.permutation(data.shape[0])], (6,8)) 

# Should select entire array except the last column 
train_inputs = np.resize(train, len(train[:,1]), -1) 
test_inputs = np.resize(test, len(test[:,1]), -1) 
cv_inputs = np.resize(cv, len(cv[:,1]), -1) 

# Should select **only** the last column. 
train_outs = train[:, 30] 
test_outs = test[:, 30] 
cv_outs = test[:, 30] 

아이디어는 내가 의도 한 크기를 조절을 해당 데이터 세트의 열 번호를 찾아 수행하는 기계를하고 싶은 것입니다 : 여기 내 코드는 지금까지 (이 특정 문제를 참조하는 부분)입니다. 두 번째 부분은 마지막 열만 선택합니다. 스크립트가 그 전에 중지되기 때문에 작동하는지 확실하지 않습니다. 이 오류는 방법으로,이다 :

Traceback (most recent call last): 
    File "src/model.py", line 43, in <module> 
    train_inputs = np.resize(train, len(train[:,1]), -1) 
TypeError: resize() takes exactly 2 arguments (3 given) 

PS : 이제 문서에서 찾고 있어요 즉, 내가 용액으로부터 아주 멀리 모르지만, 난 정말 그것을 알아낼 수 없습니다 볼 수 있습니다. NumPy를 처음 사용합니다.

미리 감사드립니다.

+0

는'np.resize'는 거의 사용되지 않는 기능입니다. 'reshape'가 더 유용합니다 (http://stackoverflow.com/questions/41795638/collapsing-all-dimensions-of-numpy-array-the-the-first-two 에서처럼). 그리고 대답에 표시된 것처럼 색인을 자르는 것은 매우 일반적입니다. 어쩌면 당신은'VBA' 또는 다른 언어에서'resize'를 사용하는 데 익숙합니다. 알았어. – hpaulj

+0

. 감사! 나는 어떤 언어에도 익숙하지 않다. 새로운 기술을 배우려고하는 한 남자와 제가 갈 때 문제를 찾고 있습니다. 그 해결책 중 하나를 발견했지만 분명히 좋은 해결책이 아니었다. :) –

답변

2

일부 슬라이스는 데 도움이 될 것입니다

이 마지막 열

train_inputs = train[:,:-1] 
test_inputs = test[:,:-1] 
cv_inputs = cv[:,:-1] 

과를 제외하고 전체 배열을 선택해야합니다 :

마지막 열을 선택해야합니다.

train_outs = train[:,-1] 
test_outs = test[:, -1] 
cv_outs = test[:, -1] 
+0

나는이 문제를 해결했다고 생각하는데, 다른 문제가 생기고 있지만 코드의 다른 부분과 관련되어있다. 감사! –

관련 문제