Numpy에서 특정 조건의 열을 추출하고 싶습니다.
조회수 1294회
Numpy에서 특정 조건의 열을 추출하고 싶습니다.
데이터 셋에 Pandas를 이용하여 Numpy 배열을 얻었습니다.
[[0.2 0. 0. ... 0. 2. 2. ]
[0.2 0. 0. ... 0. 2. 2. ]
[0.55 0. 0. ... 0. 0. 0. ]
[0.43 0. 0. ... 0. 2. 2. ]
[0.21 0. 0. ... 0. 2. 1. ]
[0.37 0. 0. ... 0. 2. 2. ]]
여기에서 각 열의 마지막 element (0,1,2)를 기준으로 파일을 수식을 이용해서 재분류 하고 싶은데 어떻게 해야 되나요?
ex)
print(train0)
[ [0.55 0. 0. ... 0. 0. 0. ]]
print(train1)
[ [0.21 0. 0. ... 0. 2. 1. ]]
print(train2)
[[0.2 0. 0. ... 0. 2. 2. ]
[0.2 0. 0. ... 0. 2. 2. ]
[0.43 0. 0. ... 0. 2. 2. ]
[0.37 0. 0. ... 0. 2. 2. ]]
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
좀 무식하게 하면 이렇게 가능할 것 같아요.
>>> train = np.random.randint(0, 3, (15, 5)) >>> train array([[1, 0, 2, 0, 2], [0, 1, 0, 1, 2], [0, 2, 0, 1, 0], [0, 2, 0, 0, 1], [2, 0, 0, 1, 0], [2, 2, 0, 0, 0], [2, 2, 0, 1, 0], [1, 2, 1, 0, 0], [1, 2, 2, 1, 1], [2, 2, 2, 0, 1], [0, 2, 0, 0, 2], [0, 0, 0, 1, 2], [2, 1, 2, 2, 0], [0, 1, 1, 2, 1], [0, 2, 2, 0, 0]]) >>> t = dict() >>> for row in train: cond = tuple(row[-3:]) t[cond] = t.get(cond, []) t[cond].append(row) >>> for k, v in t.items(): t[k] = np.array(t[k]) print('--', k) print(t[k]) -- (2, 0, 2) [[1 0 2 0 2]] -- (0, 1, 2) [[0 1 0 1 2] [0 0 0 1 2]] -- (0, 1, 0) [[0 2 0 1 0] [2 0 0 1 0] [2 2 0 1 0]] -- (0, 0, 1) [[0 2 0 0 1]] -- (0, 0, 0) [[2 2 0 0 0]] -- (1, 0, 0) [[1 2 1 0 0]] -- (2, 1, 1) [[1 2 2 1 1]] -- (2, 0, 1) [[2 2 2 0 1]] -- (0, 0, 2) [[0 2 0 0 2]] -- (2, 2, 0) [[2 1 2 2 0]] -- (1, 2, 1) [[0 1 1 2 1]] -- (2, 0, 0) [[0 2 2 0 0]]
pandas dataframe 형태라면, 마지막 3개를 묶은 컬럼을 하나 만들고, 그 컬럼으로
groupby
하겠고요.
댓글 입력