# numpy

514개의 포스트
post-thumbnail

python에서 배열 저장하기에 관하여

이 velog를 작성하게된 계기 > user클래스를 담은 배열을 저장해야하는데, 예전에는 Pickle만을 썻던것 같은데, 요즘엔 numpy를 쓰는 추세인것 같아서 공부해서 쓴다. numpy로 배열 저장하기 > import numpy as np numpy를 임포트 해준다. 그리고 클래스를 선언해 각 객체를 생성하고, 그것을 담은 리스트array를 생성하였고, 그것을 인자로 주었다. np.save('test.npy',array)이 코드를 실행하면, test.npy라는 파일에 array가 담겨서 저장된다. >> 이와같이 test.npy 파일이 정상적으로 생성된것을 알 수 있다. npy 파일 배열 불러오기 > `abc = np.load('test.npy(불러올 npy파일)',allo

3일 전
·
0개의 댓글
·
post-thumbnail

chapter 9 : 그래프와 시각화(2)

9.2 pandas에서 seaborn으로 그래프 그리기 지난 시간의 matplotlib을 내부적으로 사용하는 seaborn 라이브러리를 이용하여 그래프를 그려보자. > seaborn 라이브러리는 import 하면 더 나은 가독성을 위해 matplotlib의 기본 스타일을 변경한다. 그래서 일부는 seaborn API를 사용하지 않더라도, matplotlib의 그래프 스타일을 개선하기 위해서 seaborn을 import 하기도 한다. 9.2.1 선그래프 Series와 DataFrame은 둘 다 plot 메서드를 이용해 다양한 형태의 그래프를 생성할 수 있다. plot 메서드는 기본적으로 선그래프를 생성한다. 이 plot 메서드는 다양한 인자를 포함한다. S

3일 전
·
0개의 댓글
·
post-thumbnail

chapter 9 : 그래프와 시각화(1)

정보를 시각화하는 것은 데이버 분석에 있어서 핵심 중 하나다. 시각화는 >1)특잇값을 찾아낸다 2)데이터 변형이 필요한지 알아본다 3)모델에 대한 아이디어를 찾기 위한 과정의 일부이다. matplotlib 라이브러리를 통해 데이터를 시각화 해보자. 9.1.1 figure와 서브플롯 matplotlib에서 그래프는 Figure 객체 내에 존재한다. 그래프를 위한 새로운 figure은 plt.figure를 사용해서 생성할 수 있다. 빈 figure로는 그래프를 그릴 수 없으므로, add_subplot을 사용해서 하나 이상의 subplots 객체를 생성해야한다. plot 명령어로 그래프를 띄우면, matplotlib은 가장 최근의 figure와 그 서브플롯을 그린다. 만

3일 전
·
0개의 댓글
·
post-thumbnail

numpy 여러 가지 곱셈의 연산

Numpy란? > Numpy는 행렬 (array)을 다루는 패키지답게, 지원하는 곱셈의 종류가 너무나 많다. 이런 3 * 3 행렬 두 개가 있다고 하자. @과 np.dot() 우선 이 두 연산은 같은 연산이다. 흔히 행렬의 곱셈이라고 하면 (행렬의 내적, 앞 행렬의 row를 가져오고 뒷 행렬에서는 column을 가져오는...) 가장 일반적으로 떠올릴 수 있는 곱셈이다. Numpy 패키지를 사용하지 못하고 행렬 곱셈을 계산하는 문제에서 column을 전치행렬화해서 각각을 곱해줘서 더해주는 방법으로 했다. np.inner() np.inner도 사실은 내적을 계산하는 함수이다. np.dot과 np.inner 함수 모두 두 벡터의 내적을 계산하는 데 사용되지만, 다차원 행렬에 대해서는

7일 전
·
0개의 댓글
·
post-thumbnail

TIL - Numpy

💽Numpy 📚배운 강의 내용 > * Numpy의 연산 > * Numpy와 선형대수 > * Numpy 실습문제 풀이 📌Numpy의 연산 ❗️Vector와 Scalar 사이의 연산 벡터의 각 원소에 대해 연산을 진행하면 된다. > $x=\begin{bmatrix} 1 \\2\\3\\\end{bmatrix}c=5$ 위와 같은 식이 있다고 할 때 각 원소에 대해 c의 연산이 이루어 진다. >python 더하기 : [6 7 8] 빼기 : [-4 -3 -2] 곱하기 : [5 10 15] 나누기 : [0.2 0.4 0.6] 다음처럼 Vector와 Vector가 있다면 어떨까? > $y=\begin{bmatrix}1\\3\\5\\\end{bmatrix} z=\begin{bmatrix}2\\9\\20\\\end{bmatrix}$ Vecotr끼리는 벡터의 각 원소끼리 연산이 진행된다. >python 더하기 : [3 12 25] 빼기 : [-1 -6 -15

2023년 9월 7일
·
0개의 댓글
·
post-thumbnail

np.random.randint와 random.randint

np.random.randint(low, high=None, size=None) NumPy 라이브러리에 포함, 주어진 범위에서 정수형 난수를 생성. low부터 high(exclusive) 사이의 값 중에서 난수를 생성, size 매개변수를 통해 배열의 크기를 지정. 만약 size가 지정되면 해당 크기의 NumPy 배열(ndarray)을 반환, 그렇지 않으면 단일 정수값을 반환. random.randint(a, b) Python 표준 라이브러리인 random 모듈에 포함, [a, b] 범위 내에서 (a와 b 모두 포함) 임의의 정수를 반환. 이 함수는 항상 단일 정수값만을 반환 요약 사용되는 라이브러리 np.random.randint은 NumPy 라이브러리에 속해 있으며 특히 다차원 배열과 함께 사용될 때 유용 random.randint은 Python 표준 라이브러리인 random 모듈 반환 형식 np.r

2023년 9월 7일
·
0개의 댓글
·
post-thumbnail

Numpy의 linspace()와 arange()

linspace(start, stop, num) start: 시작 값 stop: 종료 값 num: 생성할 숫자의 개수 linspace 함수는 지정된 범위(start와 stop) 사이에서 균일한 간격으로 (num) 개수만큼의 숫자를 생성. 즉, 시작과 종료 값을 포함하여 동일한 간격으로 분할된 값을 반환. arange([start], stop[, step]) start: 시작 값 (optional) stop: 종료 값 step: 간격 (optional) arange 함수는 지정된 범위(start, stop) 사이에서 주어진 간격(step)으로 값을 생성. 기본적으로 시작 값은 생략될 수 있으며 디폴트로 0을 사용. - 요약 linspace : 시작과 종료 값을 포함하여 지정된 개수만큼 균일한 간격으로 분할된 숫자 배열을 반환 arange : 시작과 종료 값을 설정하고 선택적으로 간격을 설정하여 범위 내의 값을 반환

2023년 9월 7일
·
0개의 댓글
·
post-thumbnail

📕Week3 day2(Numpy 실습예제2)

Numpy 실습 예제2 📌브로드캐스팅 같은 차원의 다른 모양 같은 차원이지만 다른 모양을 가진 배열 간의 연산에서 어떻게 브로드캐스팅이 적용되는지 살펴보았습니다. 2차원 배열(행렬) 간의 덧셈 연산을 해봅시다. 예시로 3 x 3 배열(A)과 1 x 3 배열(B) 사이에 덧셈 연산, 그리고 3 x 3 배열(A)과 2 x 3 배열(C) 사이에 덧셈 연산을 행하는 코드를 살펴보겠습니다. 위 코드에서 A + B를 행하는 연산을 그림으로 나타내면 다음과 같습니다. 1 x 3 배열 B는 3 x 3 배열 A 모양의 맞춰 0차원을 기준으로 확장(1->3)하여 연산합니다. ![](https://velog.velcdn.com/images/jooniorp/post/99c33f34-61b8-4c2e-8d

2023년 9월 5일
·
0개의 댓글
·
post-thumbnail

📕Week3 day2(Numpy 실습예제1)

Numpy 실습 예제1 *day2에 했던 내용들은 제외하고 작성했습니다. 📌Numpy 랜덤 배열 생성 numpy의 random함수를 이용하여 랜덤 배열을 생성해봤습니다. randn()에 모양을 인자로 주어 배열을 생성합니다. 이때, randn()에 들어간 인자의 순서대로 차원의 크기가 정해집니다. normal()은 정규 분포에 맞게 생성하는 함수로서 모양을 size 인자를 통해 전달하여 배열을 생성합니다. 이때 평균(mean)과 표준편차(std)값을 각각 loc, scale 인자를 통해 지정할 수 있습니다. randint(start, end, size)는 임의의 정수들로 채워진 배열을 만들어줍니다. 이때 정수 범위는 start 이상 end 미만으로, size에 모양을 인자로 전달합니다. #실습코드 📌배열의 슬라이싱을 이용한 값 변경 1차원 배열의 슬라이싱을 이용한 값 변경 list의 리스트와 달리 numpy.ndarr

2023년 9월 5일
·
0개의 댓글
·

np.dot() / np.outer() / np.multiply() 정리

np.dot() dot product 정의는 다음과 같다: $a \cdot b = \sum{i=1}^{n}aib_i$ 따라서 3번째 cell과 같이 코드로 구현할 수 있다. np.outer() outer product 정의는 다음과 같다: $(a \times b){ij} = aib_j$ 따라서 5번째 cell과 같이 코드로 구현할 수 있다. np.multiply() np.multiply() 함수는 element-wise multiplication (Hadamard product)을 수행

2023년 9월 2일
·
0개의 댓글
·
post-thumbnail

[Python라이브러리] Numpy

Numpy : 복잡한 빅 데이터의 수학적, 과학적 계산을 위해 만들어진 라이브러리(ndarray클래스) NumPy 다양한 함수들 - Codetorial 기능 반복문 없이 전체 데이터 배열 연산이 가능한 표준 수학함수를 제공함(mean(),sqrt(),std() 등) 배열(array): 같은 자료형의 원소들이 연속적인형태로 구성된 자료 구조로 다량의 데이터를 그룹으로 관리하기위해 사용함 np.ndarray 클래스 : 동일한 자료형을 가지는 값들이 배열 형태로 존재 사칙연산 가능 (내부 모든값에 직접 연산됨) ex. arr + 1 형태 같은 배열끼리 연산 가능 ex. arr1 + arr2 인덱싱, 슬라이싱 가능 ex. arr[행범위, 열범위] numpy

2023년 8월 28일
·
0개의 댓글
·
post-thumbnail

P.13/ Numpy

jupyter 노트북 필기 https://github.com/freenozero/BookPythonmachinelearningperfect_guide Numpy Numerical Python을 의미하는 Numpy는 파이썬에서 선형대수 기반의 프로그램을 쉽게 만들 수 있도록 지원하는 대표적인 패키지, 빠른 배열 연산 속도를 보장, C/C++과 같은 저수준 언어 기반의 호환 API 제공한다. Numpy는 매우 빠른 배열 연산을 보장해주지만, 파이썬 언어 자체가 가지는 수행 성능의 제약 때문에 매우 중요한 부분은 C/C++ 기반의 코드로 작성하고 Numpy에서 호출하는 방식으로 쉽게 통합할 수 있다. Tensorflow는 이러한 방식으로 배열 연산 수행 속도를 개선하고 Numpy와도 호환될 수 있게 작성됐다. 넘파이의 기본 데이터 타입은 ndarray이다. ndarray를 이용해 넘파이에서 다차원 배열을 쉽게 생

2023년 8월 25일
·
0개의 댓글
·

[Python] 데이터 분석 - NumPy, pandas

🔍 배열 데이터를 효과적으로 다루는 NumPy 과학 연산을 쉽고 빠르게 할 수 있게 만든 패키지 다차원 배열 데이터를 효과적으로 처리 가능 > 배열 Array 순서가 있는 같은 종류의 데이터가 저장된 집합 배열 생성하기 시퀀스 데이터로부터 배열 생성 arrobj = np.array(seqdata) 시퀀스 데이터를 인자로 받아 NumPy의 배열 객체를 생성한다. 시퀀스 데이터에 정수와 실수가 혼합되어 있으면 모두 실수로 변환하기 때문에, 배열의 속성을 표현하려면 ndarray.속성을 같이 작성해야 한다. (ndarry = NumPy의 배열 객체) ndarray.dtype으로 데이터 타입 확인 가능하다. 🖐️ 자세한 내용은 NumPy 홈페이지 참고!

2023년 8월 20일
·
0개의 댓글
·
post-thumbnail

[KT AIVLE 4기] Python 프로그래밍 & 라이브러리 1

교육을 들으면서, 잘 몰랐던 부분, 헷갈렸던 부분 등만을 중심적으로 정리해 볼 생각입니다! NumPy >NumPy("넘파이"라 읽는다)는 행렬이나 일반적으로 대규모 다차원 배열을 쉽게 처리할 수 있도록 지원하는 파이썬의 라이브러리이다. NumPy는 데이터 구조 외에도 수치 계산을 위해 효율적으로 구현된 기능을 제공한다. -위키백과 📌 라이브러리 불러오기 📌 배열만들기: np.array() 📌 주요 용어 정리 np.ndim: 차원 확인 np.shape: 형태(크기) 확인 np.dtype: 요소 자료형 확인 np.reshape: 차원 변환 배열에 포함된 요소가 사라지지 않는 형태라면 자유롭게 변환할 수 있다. -1의 편리성 (m, -1) 또는 (-1, n) 처럼 사용해 행 또는 열 크기 한 쪽만

2023년 8월 13일
·
1개의 댓글
·

Numpy 정리

1. Numpy란 Numpy는 c언어로 구현된 파이썬 라이브러리 고성능의 수치연산 행렬/배열 처리 및 연산 기본적으로 arrary 단위로 데이터를 관리하며 연산 수행 하나의 타입으로만 이루어져 있다. 타입은 ndarray이다. array와 ndarray의 차이 데이터를 효율적인 고정 타입 데이터 버퍼에 저장하는 다양한 방식을 제공하는데 파이썬 3.3부터 제공하는 array라는 내장 모듈이 그 중 하나. 파이썬 내장 모듈인 array 모듈은 데이터에 효율적인 저장소만을 제공해주는 반면, numpy는 효율적인 저장소를 제공할 뿐만 아니라 효율적인 연산도 가능하게 해준다. 1-1. Numpy 기초 i) array 정의 및 사용 정의 ii) 행렬의 차원과 크기 행렬의 차원변환 reshape는 지정된 사이즈로 변경 불가능 하면 오류 발생 (10,)인 데이터를 (4,3)

2023년 8월 10일
·
0개의 댓글
·
post-thumbnail

수업 30일차

✔ 임시 ndarray의 연산 ndarray의 broadcast 연산 ndarray는 빠르다고 했어요. 원래는 같은 인덱스끼리 덧셈을 합니다. (순차적 연산 수행) vectorized된 연산? core가 5개라면 산술연산을 5개 한번에 할 수 있다. 속도가 미쳤다. 하지만 는? 저차원을 고차원으로 늘려버립니다. - 이를 브로드캐스트 연산이라 합니다. > 는 어떻게 하는데? 차원이 달라야 브로드캐스트 연산을 하지만, 더할 애가 없어서 에러가 납니다. vectorized 연산 ndarray의 연산을 빠르게 수행하기 위해서 사용하는 방식 broadcast 연산은 차원이 다른 경우 차원을 맞추어서 연산을 수행하는데, 요소의 개수가 다르면 수행을 하지 못합니다. 산술연산 가능합니다. > 논리연산 가능 numpy의 equal,

2023년 8월 8일
·
0개의 댓글
·

[선형대수]L1-norm과 L2-norm, 그리고 인공지능에서

개념 norm 선형대수학에서 놈은 벡터의 크기(magnitude) 또는 길이(length)를 측정하는 방법 Lp-norm L1-norm, L2-norm blue line이 L1-norm L1 Norm은 두 개의 벡터를 빼고, 절대값을 취한 뒤, 합한 것 Lasso 회귀에서 사용

2023년 8월 7일
·
0개의 댓글
·

[numpy]array

.array(생성할 데이터, 데이터 타입) 총 64bit이므로 하나의 값 당 8byte 가짐 dtype: 데이터 타입 지정하는 매개변수 int: 정수형 float: 실수형 numpy배열은 tensor의 구조에 맞춰 배열 생성 행렬의 모든 데이터가 채워져 있어야함 2X4 행렬을 구성하려고했지만, 2행 4열 값이 비어있음 tensor중 일부가 비어있어 ValueError발생 파이썬 리스트는 각 값의 메모리 주소만 연속적으로 배열하여 다양한 종류의 값이 순서대로 표시되는 반면, numpy 리스트는 실제 값을 연속적으로 나열하므로 각 값들의 메모리 크기가 동일해야하며,동적 타이핑을 포기하고 하나의 데이터 타입만 사용해야함 dynamic typing: 여러 타입의 값들이 코드 수행과 동시에 결정됨 tuple : 셀수있는 수량의 순서있는 열거 컴퓨터 과학에서 tuple은 어떤 요소의 집합, 혹은 테이블에서의 행을 가리킴. (레코드와

2023년 8월 4일
·
1개의 댓글
·
post-thumbnail

Numpy의 where() 이해하기

참고문헌: https://numpy.org/doc/stable/reference/generated/numpy.where.html https://pinkwink.kr/1236 파이썬의 연산을 위해 사용하는 라이브러리 Numpy에서는 condition을 충족하는 인덱스를 알게 하는 where() 함수도 제공한다. 구조가 어떻게 되어 있을까? 공식 문서를 보니, 1차원 배열 형태라면 다음과 같은 연산을 수행한다고 한다. numpy의 where문은 python에서 for문을 직접 구현하는 것보다 더 빠르다고 한다. 정말 그런가? 코랩으로 테스트 해 보았다. ![](https://velog.velcdn.com/images/yun5/post/6e3ea4fa-8b63-4f73-9229-269

2023년 8월 4일
·
0개의 댓글
·

텐서플로우 버전 오류 관련

CNN-registration github https://github.com/yzhq97/cnn-registration 프로젝트를 위해 anomaly detection 파트를 맡았다가 지금은 registration 파트에 붙게 돼서 위 모델을 돌리던 도중, 버전 관련 오류떄문에 고생했다. 맨날 pytorch만 쓰다가 오랜만에 tensorflow를 써서 익숙하지 않았는데, tensorflow에도 익숙해져야 할 필요성을 느꼈다 오류 해결 과정 텐서플로우 빌딩 환경 https://www.tensorflow.org/install/source?hl=ko#testedbuildconfigurations 위 페이지에서 CUDA버전이나 파이썬 버전을 참고해 빌딩해 오류를 방지해야 한다. 또, numpy 버전도 잘 맞춰줘야 하는데 이건 구글링하면서 해결하는 게 편할듯 tensorflow의 경우, tensorflow 2.0으로 넘어오면서 1.x 버전에서의 코드를

2023년 8월 4일
·
0개의 댓글
·