# import numpy as np
# from sklearn.covariance import EllipticEnvelope
# aaa = np.array([[-10,2,3,4,5,6,700,8,9,10,11,12,50],
# [100,200,-30,400,500,600,-70000,800,900,1000,210,420,350]])
# # aaa = aaa.reshape(-1, 1)
# aaa = np.transpose(aaa)
# outliers = EllipticEnvelope(contamination=.1) #contamination = 이상치 범위 지정 파라미터
# outliers.fit(aaa)
# results = outliers.predict(aaa)
# print(results)
# # [ 1 1 1 1 1 1 -1 1 1 1 1 1 -1] -1은 이상치이다.
import numpy as np
from sklearn.covariance import EllipticEnvelope
aaa = np.array([[-10,2,3,4,5,6,700,8,9,10,11,12,50],
[100,200,-30,400,500,600,-70000,800,900,1000,210,420,350]])
outliers = EllipticEnvelope(contamination=.1)
for i, column in enumerate(aaa):
outliers.fit(column.reshape(-1, 1))
results = outliers.predict(column.reshape(-1, 1))
outliers_save = np.where(results == -1)[0]
# print(outliers_save)
# print(outliers_save[0])
outliers_values = column[outliers_save]
print(f"{i+1}번째 컬런의 이상치 : {', '.join(map(str, outliers_values))}\\n 이상치의 위치 : {', '.join(map(str, outliers_save))}")