파이썬numpy 28

[Python] 파이썬 numpy 배열 요소 바꾸기, numpy 배열과 리스트의 차이점

안녕하세요! 나비입니다 🦋 이번 포스팅에서는 파이썬 numpy로 생성한 배열에서 각각의 요소 값을 바꾸는 방법에 대해 소개할 예정입니다. 또한, numpy의 배열과 파이썬 리스트 자료형의 차이점에 대해서도 함께 설명하겠습니다. 배열 요소 바꾸는 방법 파이썬 numpy로 선언한 배열을 슬라이싱하고, 그 슬라이싱된 배열의 일부분에 특정한 값을 대입해주면 원래 배열도 함께 바뀝니다. 마치 동기화 하는 것과 비슷한 느낌입니다. import numpy as np #바꾸기 전 A = np.array([0,1,2,3]) print(A) #바꾼 후 a = A[0:3] a = -1 print(A)[0,1,2,3] [-1,-1,-1,3] 위 코드와 같이, 3개의 값을 바꾸고자 할 때 굳이 [-1,-1,-1]이라고 하지 않..

Python/Numpy 2024.05.19

[Python] 파이썬 numpy 불 인덱싱 (boolean indexing) 불 대수 배열 인덱싱

안녕하세요! 나비입니다 🦋 이번에는 파이썬 numpy를 이용해서 배열을 인덱싱하는 방법 중, 특별히 bool 대수를 활용한 ‘boolean indexing’을 소개하려고 합니다. boolean indexing은 주어진 배열에서 원하는 조건을 만족시키는 원소만 선택하는 방법입니다. 일반 indexing의 경우 원소의 실제 위치를 직접 지정해야 했던 것과 다르게, boolean indexing은 특정한 조건을 제시하면 그 조건에 해당하는 원소 또는 배열을 자동으로 출력해줍니다. 예제 코드를 통해 더 구체적으로 설명해 보겠습니다. import numpy as np A = np.array([1,2,3,4]) print(A) A_bool2 = (A%2 == 0) print(A_bool2) A_bool3 = (A%..

Python/Numpy 2024.05.15

[Python] 파이썬 numpy 배열 인덱싱 - 1차원, 다차원 행렬

안녕하세요! 나비입니다 🦋 이번 포스팅에서는 파이썬 numpy 라이브러리를 통해 행렬을 인덱싱(indexing)하는 방법에 대해서 소개할 예정입니다. 먼저, 1차원 행렬을 인덱싱하는 기본적인 방법을 소개하고, 그다음에 다차원 배열 인덱싱까지 해보겠습니다. numpy 1차원 배열 인덱싱import numpy as np A = np.array([1,2,3,4,5,6]) a1 = A[2] a2 = A[1:5] print(a1) print(a2)3 [2,3,4,5] 파이썬에서 배열을 인덱싱하는 방법은 넓게 보면 리스트를 다루는 방법과 비슷합니다. (차이점도 분명 있긴 하지만요) 파이썬 리스트에서 첫 번째 값을 0번째라고 생각하고, 리스트명 뒤에 붙는 “1:4”라는 표기가 4번째를 제외하고 1번째부터 3번째까지라..

Python/Numpy 2024.05.15

[Python] 파이썬 numpy 행렬 결합 - hstack, vstack

안녕하세요! 나비입니다 🦋이번 포스팅에서는 두 행렬을 하나로 결합할 수 있는 파이썬 numpy 메소드를 소개하려 합니다.행렬 결합 메소드는 크게 수직(vertical)하게 결합하는 vstack 메소드와 수평(horizontal)으로 결합하는 hstack 으로 나뉩니다.hstack는 여러 개의 행렬을 한 줄로 이어 붙이는 함수이고, vstack는 벽돌을 쌓듯이 위아래로 행렬을 결합하는 기능을 수행합니다.말로만으로는 와닿지 않을 수 있으므로, 예시 코드를 보여드리면서 한 번 더 설명해보겠습니다.np.hstackimport numpy as npA = np.array([1,2,3])B = np.array([2,3,4])C = np.hstack((A, B))print(C)[1,2,3,2,3,4]가장 기본적인 예..

Python/Numpy 2024.04.26

[Python] 파이썬 numpy 행렬 대소관계 비교 - greater, less, equal

안녕하세요! 나비입니다 🦋이번 포스팅에서는 행렬의 각 원소들의 대소관계를 서로 비교할 수 있는 numpy 메소드 3개를 소개해 드리려고 합니다.greater, less, equal이라는 메소드 이름에서 이미 짐작하셨겠지만, 차원이 같은 두 행렬에 대하여 같은 위치에 있는 원소끼리 크고 작음을 비교해주는 기능을 수행합니다.greater : 행렬의 요소별로 X > Y의 진리값(true, false)를 반환합니다.less : 행렬의 요소별로 X equal : 행렬의 요소별로 X = Y의 진리값(true, false)를 반환합니다.X, Y는 각각의 요소를 의미합니다.예제 코드를 통해 더 직관적으로 보여드릴게요!np.greaterimport numpy as npA = np.array([1,2,3])B = np...

Python/Numpy 2024.04.25

[Python] 파이썬 numpy 내적, 행렬곱, 전치행렬 - dot, matmul, transpose

안녕하세요! 나비입니다 🦋 이번 포스팅에서는 파이썬 numpy에서 행렬과 관련된 기본적인 연산 함수를 소개해 드리려고 합니다. 선형대수학, 행렬 연산에서 매우 자주 다루는 내적(dot product), 행렬곱(matrix product), 전치행렬(transpose) 연산 메소드를 아래서 차례대로 설명하겠습니다. np.dot : 두 array의 내적을 반환합니다. np.matmul : 두 array의 행렬곱을 반환합니다. np.transpose : 입력된 행렬의 전치행렬을 반환합니다. (내적, 행렬곱, 전치행렬에 대한 수학적 설명은 생략하겠습니다.) np.dotimport numpy as np a = np.dot(2,3) A = np.dot([1,2], [3,4]) B = np.dot([1,2,3], [..

Python/Numpy 2024.04.24

[Python] 파이썬 numpy 행렬 생성과 반복 - repeat, tile

안녕하세요! 나비입니다 🦋 이번 포스팅에서는 행렬 생성과 관련한 파이썬 numpy 메소드를 소개드릴 예정입니다. 지난/지지난 포스팅에서도 행렬 생성 메소드인 arange, linspace, ones, zeros 등등에 대해 소개했는데요, 이번 포스팅은 행렬 생성 마지막 포스팅으로, repeat과 tile이라는 메소드를 다뤄보려 합니다. 두 함수 모두, array의 일부 또는 전부를 “반복”한다는 점에서 기능적으로 유사합니다. repeat : ndarray의 요소를 지정한 횟수만큼 반복합니다. axis 파라미터 사용 가능 tile : ndarray의 요소를 지정한 횟수만큼 반복합니다. (타일처럼) 코드 예제를 보면서 더 자세히 설명해 보겠습니다! np.repeatimport numpy as np A = n..

Python/Numpy 2024.04.24

[Python] 파이썬 numpy 행렬 생성 - ones, ones_like, zeros, zeros_like, identity

안녕하세요! 나비입니다 🦋 이번 포스팅에서는 지난 포스팅에 이어서 행렬 생성과 관련한 파이썬 numpy 메소드를 다룰 거예요. 특히, 원소가 0 또는 1로만 되어 있는 행렬을 쉽게 생성하는 5가지 메소드에 대한 소개글을 준비해 보았습니다. 0과 1로만 이루어진 행렬은 이산수학에서 그래프를 나타내는 인접행렬에 사용되거나, 연산을 편리하게 해주는 용도로 다방면에서 쓰이는데요, 그렇기 때문에 np.array 메소드로 똑같이 만들 수 있음에도 불구하고 메소드가 따로 존재하는 것입니다. ones, ones_like, zeros, zeros_like, identity 이렇게 5가지 메소드 차례대로 알아보도록 하겠습니다! np.ones, np.ones_likeones, ones_like는 1로만 채워진 array 또..

Python/Numpy 2024.04.20

[Python] 파이썬 numpy 행렬 생성 - arange, linspace

안녕하세요! 나비입니다 🦋 지난 포스팅에서는 파이썬 난수 생성 메소드에 대해 소개드렸는데요, 이번 포스팅부터는 행렬과 관련있는 numpy 메소드들을 차례대로 다뤄보려고 합니다. (행렬(matrix) 관련된 파이썬 numpy 포스팅은 총 7편으로 계획하고 있습니다! 그다음부터는 matplotlib 라이브러리 시리즈로 넘어가려고 합니다.) 이번에 다뤄볼 메소드는 행렬 생성과 관련된 arange, linspace 메소드입니다. 두 메소드는 기능적으로는 매우 비슷하지만, 파라미터 설정 방법에서 약간의 차이를 보입니다. np.arange : 주어진 간격에 따라 균일한 array를 생성합니다. np.linspace : 지정한 구간을 균일한 간격으로 나누는 array를 생성합니다. 두 메소드 중에서는 linspace..

Python/Numpy 2024.04.19

[Python] 파이썬 numpy 난수 생성 - random, rand, randn, randint

안녕하세요! 나비입니다 🦋 이번 포스팅에서는 파이썬 numpy 라이브러리를 이용해서 난수(임의의 수, 랜덤한 수)를 생성하는 방법을 소개하려고 합니다. 물론, 파이썬 자체 내장 모듈로 똑같이 난수를 생성하는 random 라이브러리가 있기는 합니다. 하지만, numpy와 달리 내장 random 모듈은 배열(ndarray) 기능을 지원하지 않기 때문에 선형대수학 연산이나 확률 개념이 필요한 상황에서는 numpy 라이브러리를 더 많이 사용합니다. 자주 쓰이는 메소드 3가지를 순서대로 소개드릴 텐데요, 바로 rand, randn, randint입니다. 아래서 각 메소드의 기능을 간략히 소개드리고, 그 후 예제 코드를 보여드리도록 하겠습니다. rand : 0 이상 1 미만 실수 구간에서 균일한 분포를 가지는 난수..

Python/Numpy 2024.04.18