개발자에서 전직중🔥

[Python for Data Analysis] Numpy ndarray 'Boolean' Study 본문

💻 개발/👾 AI

[Python for Data Analysis] Numpy ndarray 'Boolean' Study

olivia_park 2020. 10. 20. 17:17

불리언값으로 선택하기

- 중복된 이름이 포함된 배열이 있을 때.

- numpy.random.randn 함수를 사용해서 임의의 표준 정규 분포 데이터 생성.

✔ numpy.random.randn(m, n)
   : 평균 0, 표준편차 1의 가우시안 표준정규분포 난수를 matrix array(m, n)으로 생성하는 함수
names = np.array(["Bob", "Tae", "Jiwon", "Bob", "Jiseong", "mom", "dad"])

data = np.random.randn(7,4)

names
Out[5]: array(['Bob', 'Tae', 'Jiwon', 'Bob', 'Jiseong', 'mom', 'dad'], dtype='<U7')
      
data
Out[6]: 
array([[ 1.43148528, -0.32579109,  0.20066036,  0.07875654],✔
       [ 0.73242167,  0.54751167, -2.03786424,  0.33366243],
       [ 0.29196734,  0.70089734, -2.95177147,  0.9114017 ],
       [ 0.04945109, -0.32062597, -0.83874336, -0.7492756 ],✔
       [ 0.07924694,  1.02482589, -0.93150166, -0.32214302],
       [-0.98999475, -1.0182431 ,  0.31417034, -0.78689157],
       [-1.12192163,  1.14122152,  2.45325695, -0.80760031]])
       
data[names == "Bob"]
Out[7]: 
array([[ 1.43148528, -0.32579109,  0.20066036,  0.07875654],
       [ 0.04945109, -0.32062597, -0.83874336, -0.7492756 ]])

 - names 에 Numpy1차원 배열 만들어서 대입. Bob이라는 이름이 1번째와 4번째에 중복되어 있음.

 - data = np.random.randn(7,4) -> (7,4)형태의 표준 정규 분포 데이터 생성.

 - data[names == "Bob"] -> 각각의 이름과 data배열의 각 로우가 대응하면서, 

                                      "Bob"이 위치한 1번째와 4번째의 data값이 출력된다.

 

data[names == "Bob", 2:]
Out[8]: 
array([[ 0.20066036,  0.07875654],
       [-0.83874336, -0.7492756 ]])
       
data[names == "Bob", 3]
Out[9]: array([ 0.07875654, -0.7492756 ])

 - data[names == "Bob", 2:] -> Bob의 데이터 로우에서 인덱스 2~끝 즉, 2번과 3번에 위치한 컬럼 선택

 - data[names == "Bob", 3] -> Bob의 데이터 로우에서 인덱스 3번에 위치한 컬럼 선택

728x90
반응형