본문 바로가기

■ 코딩 ■/02 Python 실무적용

(Input) Python Input Data 이해하기 - 2 (Numpy)

728x90
반응형

지난 글에서는 Excel의 Input Data를  "DataFrame" 으로 읽고 활용하는 방법을 설명하였다. (☞클릭!)

 

DataFrame 으로 활용하는 방법은 직관적이고 내가 읽고자 하는 Column의 인덱스를 명확하게 알 수 있어 편하다는 점이다.

( 콘크리트 휨강도를 산정한다고 생각하면 공식에 들어가는 변수들을 Column index로 만들어 놓으면 매우 쉽다. )

 

다만, 이 방법의 제일 불편한 점은 그 Column index를 직접 지정해줘야 하는 경우가 생긴다는 것이다.

( 장점이 단점이 되는 뭐 그런 느낌적인... 느낌.. 물론 사용자마다 느끼는 방법은 다를 것이다.)

 

자 그럼 내가 사용하는 방법은 무엇인지 소개하겠다.!

 

바로 Numpy array 를 사용하는 방법이다. 이 방법은 우리가 행렬을 읽는 방법과 동일하다고 생각하면 이해하기가 쉽다.

 

아래의 예를 들어보자.

xls = pd.ExcelFile(files)

Input_df = pd.read_excel(xls, sheet_name=0, skiprows=4, usecols="D:F")

N_list = Input_df.values

print("----------------------------")
print("Input data")
print("----------------------------")
print(N_list)

 

1. 먼저 Input Data를 Pandas로 읽는다. (초기 형태는 DataFrame으로 가져옴.)

     1) Input_df 라는 변수에 저장.

 

2. 읽어드린 DataFrame 변수에 " .values "를 붙여준다.

     1) N_list 라는 변수에 array 형태로 저장.

 

위의 코딩을 실행시키면 아래와 같은 결과를 볼 수 있다.

----------------------------
Input data
----------------------------
[[2 5 6]
 [4 7 2]
 [5 6 7]]

 

위의 결과 모양을 그대로 행열처럼 생각하면 된다. 즉, 직관적으로 행과 열의 번호를 사용하여 코딩을 짤 수 있게되는 것이다.

 

자 그러면 지난 글에서의 DataFrame을 사용했을 때의 코딩을 Numpy로 아래처럼 바꿔서 한번 만들어보자.

print("----------------------------")
print("Input data")
print("----------------------------")
print(N_list)                                    # Input Data Numpy Array
print("")
#
print("----------------------------")
print("Input Data의 갯수 산정")
print("----------------------------")
noe = len(N_list)                                # Input Data 의 전체 갯수
print(noe)
print("")
#
print("----------------------------")
print("2행의 1열 값 읽어보기")
print("----------------------------")
print(N_list[1][0])                               # 2행의 1열 값 읽기
print("")

 

위의 코딩을 실행시키면 아래와 같은 결과를 얻을 수 있다.

----------------------------
Input data
----------------------------
[[2 5 6]
 [4 7 2]
 [5 6 7]]

----------------------------
Input Data의 갯수 산정
----------------------------
3

----------------------------
2행의 1열 값 읽어보기
----------------------------
4

 

자 그러면 위의 방법을 사용하여 각 열의 a+b+c의 값을 구하는 코딩을 만들어보자.

(지난 글과 비교하면서 읽으면 좀 더 이해가 쉬울것이라 생각한다...)

for i in range(0, noe):
    print("")
    print("a + b + c 값 구해보자 : " + str(i) + "번째")
    sum_value = N_list[i][0] + N_list[i][1] + N_list[i][2]      # 각 식의 a + b + c 값.
    print(sum_value)

 

그러면 아래와 같은 결과를 얻을 수 있다.

a + b + c 값 구해보자 : 0번째
13

a + b + c 값 구해보자 : 1번째
13

a + b + c 값 구해보자 : 2번째
18

 

기존에 설명했던 DataFrame 방법과 이 글에서의 Numpy 방법 중 사용자가 편한 방법을 택하는게 제일 좋다고 생각한다.

 

자 그럼 이제 Input을 읽고, 원하는 값들에 대한 사칙연산이 가능하니.....

 

2차방정식의 해를 구하는 코딩을 시작해도 될 것 같다.

728x90
반응형