728x90
영화 평점 데이터 분석
데이터 셋 참고
자료 참고 : datasets > older datasets > MovieLens 1M Dataset
GroupLens
GroupLens Center for Social and Human-Centered Computing
grouplens.org
# 배열로 데이터 불러오기
data = np.loadtxt('data/movie/ratings.dat', delimiter='::',dtype=np.int64)
print(data)
print(data.shape)
<문제>
- 1행부터 행까지
- 21행부터 행까지와 movieid만 출력
- 전체 평점 평균
- 사용자별 평점 평균(10명만 출력)
- 최고 평점 구하기
- 사용자별 평점 평균 데이터를 파일로 저장
<정답>
1.
print(data[:20,:])
2.
data[21:31,:2]
3.
print(data[:,2].mean())
print(np.mean(data[:,2]))
4.
user_id = np.unique(data[:,0])
print(user_id.shape)
mean_value =[]
for id in user_id:
data_user = data[data[:,0] == id,:]
value = data_user[:,2].mean()
mean_value.append([id,value])
print("결과",mean_value[:10])
5.
arr_mean_values = np.array(mean_value)
#print(arr_mean_values)
print(np.argmax(arr_mean_values[:,1])) # 282 실제로는 283번째 id
print(arr_mean_values[282])
print(np.max(arr_mean_values[:,1])) # 최고평점 확인
print(np.argsort(arr_mean_values[:,1])) # id값 오른차순 정령 282번재 사람이 가장 높은값을 가지고 있다
print(np.argsort(arr_mean_values[:,1])[::-1]) # << 역순 정렬
6.
arr_mean_values = np.array(mean_value) # 배열로 바꿔줌
print(type(arr_mean_values))
np.savetxt('data/movie/id_rations.csv',arr_mean_values,delimiter=',',
fmt= '%.1f')
728x90
'파이썬\python > numpy' 카테고리의 다른 글
<Numpy> 5. 브로드캐스팅(BroadCasting) (0) | 2020.06.12 |
---|---|
<Numpy> 4. 배열 연결(병합) : stack(), hstack(), vstack(), dstack(), tile() (0) | 2020.06.12 |
<Numpy> 3. Numpy 자료형/ 자료형 변경 dtype() (0) | 2020.06.12 |
<Numpy> 2. 배열 인덱싱/슬라이스/팬시인덱싱(fancy indexing) (0) | 2020.06.11 |
<Numpy> 1. 기초 / 특징 /배열생성 /전치연산 (0) | 2020.06.10 |