| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
- MySQL
- Matplotlib
- Algorithm
- 프로그래머스
- python
- 선그래프
- queue
- 코딩테스트
- javascript
- 알고리즘스터디
- String Method
- 파이썬
- 노마드코딩
- 알고리즘
- dataframe
- 정보처리기사 c언어
- type hint
- openCV
- 자료구조
- NumPy
- aws jupyter notebook
- Join
- Selenium
- programmers
- 알고리즘 스터디
- 백준
- pandas
- 데이터시각화
- Stack
- 가상환경
- Today
- Total
목록Python (75)
조금씩 꾸준히 완성을 향해
산술 연산 (Arithmetic Operators) -넘파이는 파이썬과 동일하게 배열 간 산술 연산 지원 행렬과 행렬, 벡터와 백터 간 연산이 가능 -같은 배열의 구조일 때 요소별 연산(element-wise operation) 요소별 연산 : 두 배열의 구조가 동일할 경우 같은 인덱스 요소들끼리 연산 # a1 확인 a1 = np.arange(1, 10) print(a1) # [1 2 3 4 5 6 7 8 9] # 여러가지 산술 연산자, 함수 print(a1+1) #[ 2 3 4 5 6 7 8 9 10] print(np.add(a1, 10)) #[11 12 13 14 15 16 17 18 19] print(a1-2) #[-1 0 1 2 3 4 5 6 7] print(np.subtract(a1, 10)) ..
reshape() : 배열의 구조를 변경하고 rank(차원수)를 조절 array.reshape(변환 shape) np.reshape(array, 변환 shape) x = np.array([[1, 2, 5, 8], [1, 2, 5, 8]]) print(x.shape) # 배열 X의 구조 확인 print(x.reshape(-1,)) # 차원을 -1 낮춘다 (2차원 -> 1차원) x = np.array(range(8)).reshape(4, 2) print(x) # 배열 x를 4행 2형의 구조로 변경(1차원 -> 2 차원) # -1 : 가능한 shape을 자동 계산하여 반영해 준다. x.reshape(2, -1) # x를 2행의 배열로 변경 (열은 자동 생성) x = np.array(range(8)).resha..
▶ zeros() : 모든 요소를 0으로 초기화 ▶ones() : 모든 요소를 1로 초기화 ▶ full() : 모든 요소를 지정한 값으로 초기화 ▶ eye() : 단위행렬(identity matrix) 생성 : 주대각선의 원소가 모두 1이고 나머지 원소는 모두 0인 정사각 행렬 ▶ tri() : 삼각행렬 생성 ▶ empty(): 초기화되지 않은 배열 생성 초기화가 없어서 배열 생성비용 저렴하고 빠름 초기화되지 않아서 기존 메모리 위치에 존재하는 값이 있음 ▶ _like() : 지정된 배열과 shape가 같은 행렬 생성 np.zeros_like() np.ones_like() np.full_like() np.empty_like()
배열의 구조 확인 (shape 함수) ▶ 1차원 배열 구조 # 1차원 test_array = np.array([1, 4, 5, 8], float) print(test_array.shape) # 배열의 구조(shape)를 반환 (튜플 형태로) # output : (4,) => 요소의 개수 ▶ 2차원 배열 구조 # 2차원 matrix = np.array([[1,2,5,8], [1,2,5,8], [1,2,5,8]]) print(matrix.shape) # output : (3, 4) => (백터의 개수, 백터의 자리수) = (행의 개수, 열의 개수) ▶ 3차원 배열 구조 # 3차원 tensor_rank3 = [[[1,2,5,8], [1,2,5,8], [1,2,5,8]], [[1,2,5,8], [1,2,5,8]..
Numpy Python의 고성능 과학 계산용 라이브러리 백터나 행렬같은 선형대수의 표현법을 코드로 처리 다차원 리스트나 크기가 큰 데이터 처리에 유리 특징 속도가 빠르고 메모리 사용이 효율적 반복문을 사용하지 않음 (연산할 때 병렬로 처리, 함수를 한 번에 많은 요소에 적용) 다양한 선형대수 관련 함수 제공 C, C++, 포트란 등 다른 언어와 통합 사용 가능 Array and Tensor (배열과 텐서) ndarray (넘파이 배열) : 넘파이에서 텐서 데이터를 다루는 객체 tensor (텐서) : 선행대수의 데이터 배열 (rank에 따라 이름이 다름) RANK NAME EXAMPLE 0 스칼라(scalar) 7 1 백터(vactor) [10, 10] 2 행렬(matrix) [[10, 10], [15,..
vscode 환경에서 코딩하고 있었는데 프로그램이 많아지고 복잡해지다 보니 터미널 셋팅과 출력에 여러 문제들이 생겨났다. 환경변수가 활성화도 안되고, 터미널에 코드가 출력이 안되고, 명령어들은 안 듣고, 라이브러리들은 안 깔리고... 등등 몇일간의 구글링을 통해 가능한 시도는 다 해본 것 같다. 환경변수 Path 값 확인도 다 해보고, 이것저것 찾아본 명령어도 많이 실행해 봤는데 다 실패를 했다. 이 과정에서 내린 결론은.... 윈도우 진짜 해도해도 너무 하다!!!!!!!!!!!!!!!!! 개발자들이 왜 Mac을 쓰는지 정말 너무나도 공감이 가는 몇 일이었다. VScode 터미널에는 powershell이 들어가 있었는데, 얘가 자꾸 상식을 벗어난 반응을 보였다. 내 운영체제, 내 상황에 딱 맞는 명령어 ..
Wait till Load Webpage(로딩 대기) 브라우저에서 해당 웹 페이지의 요소들을 로드하는데 걸리는 시간을 대기하는 것을 말한다. 웹 페이지가 로드되기도 전에 element가 존재하지 않는다는 error가 뜨는 걸 방지하기 위함이다. ▶ Implicit Waits(암묵적 대기) driver.implicitly_wait(secs) 브라우저에서 사용되는 엔진 자체에서 파싱을 기다려 주는 selenium 자체의 특수한 메소드이다. 여기서 중요한 부분은 지정값이 최대시간이라는 사실이다. 즉 파싱이 완료되면 코드가 즉시 샐행이 되고, 늦더라도 최대 n초까지는 기다려 준다는 뜻이다. ▶ Explicit Waits(명시적 대기) time.sleep(secs) 프로세스 자체를 지정한 시간동안 기다려 주는 역..
한국관광공사 홈페이지에서 여행정보를 가져오는 와중에 예기치 못한 에러를 마주했다. selenium 사용 중에 click() 함수가 작동을 하지 않는 것이었다. 원래 이렇게 사이트에 봄여행을 검색해서 특정 페이지까지 텍스트 정보를 긁어오는 게 목적이었다. 여기 보이는 이 버튼을 클릭해서 이동하는 코드를 짜고 있는데, driver.find_element_by_xpath(f'//*[@class="page_box"]/*[@id={i}]').click() 이 코드에서 자꾸 에러가 떴다. ElementClickInterceptedException 이라고 한다. 분명 id 값을 제대로 가져온 게 맞고, 다른 버튼들은 또 잘 작동하니 어리둥절.... 구글링 해서 결국 해결책을 알아냈다. element가 HTML 상에는..
selenium을 사용해서 네이버 로그인을 해보자. from selenium import webdriver import time # webdriver 경로 지정 driver = webdriver.Chrome("./chromedriver.exe") time.sleep(3) #시간 지연 3초 주기 #1. 네이버 이동 driver.get("http://naver.com") #2. 로그인 페이지로 이동 elem = driver.find_element_by_class_name("link_login") elem.click() time.sleep(3) 일단 네이버로 이동해서 로그인 페이지까지 갔다. 아이디, 비밀번호를 입력하려는데 문제가 하나 생겨버린다. driver.find_element_by_id('id').se..