[데이터 분석] 연산자

2023. 6. 13. 10:51데이터 분석

728x90

연산자란?

    *  덧셈, 뺄셈, 곱셈, 나눗셈은 shape가 같아야함

    *  같은 position끼리 연산

    *  내적은 맞닿는 shape가 같아야 함

    *  내적은 떨어져 있는 shape가 결과 행렬이 됨

# dot product( 행렬곱, 내적 )
# 맞닿은 shape이 같아야함

a = np.array ([[1,2,3],[2,3,4]])
b = np.array([[3,4,5],[1,2,3]])
a.shape , b.shape
------------------------------------
# 결과(행,열)
▶ ((2, 3), (2, 3))
# 덧셈연산
a+b
------------
# 결과
▶ array([[4, 6, 8],
          [3, 5, 7]])
# 뺄셈 연산
a-b
--------------
# 결과
▶ array([[-2, -2, -2],
          [ 1,  1,  1]])
# 곱셈 연산
a*b
--------------
# 결과
▶ array([[ 3,  8, 15],
          [ 2,  6, 12]])
#나눗셈 연산
a / b
---------------
▶ array([[0.33333333, 0.5       , 0.6       ],
          [2.        , 1.5       , 1.33333333]])
print((1*1+2*3+3*5),(1*2+2*4+3*6))
print((1*1+2*3+3*5),(1*2+2*4+3*6))
print((2*1+3*3+4*5),(2*2+3*4+4*6))
--------------------------------------
▶ 22 28
   22 28
   31 40
np.dot(a,b)
-------------
▶ array([[22, 28],
         [22, 28],
         [31, 40]])

2️⃣ arange

          *  순차적인 값을 생성할 때 사용

arr1 = range(1,11)

for i in arr1:
    print(i,end='')
-------------------------
▶ 12345678910
arr2 = np.arange(1,11)
arr2 ▶ array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10])

for i in arr2:
    print(i,end='')
----------------------
▶ 12345678910

 

3️⃣ sort (정렬)

 

#문자열 역순으로 출력하기
str1 = 'Python'


print(str1[:])# 모든 문자를 슬라이싱
print(str1[::])#print(str1[::1])-> 1: 정방향
print(str1[::-1]) # -1:역방향
print(str1[4:1:-1]) # 4번 인덱스부터 1직전까지 역순으로 가져오기
print(str1[4::-1]) #4번 인덱스부터 0까지 역순으로 가져오기
-------------------------------------------------------------------
# 결과
▶ Python
▶ Python
▶ nohtyP
▶ oht
▶ ohtyP
ndarr1 =np.array([1,10,5,7,2,4,3,6,8,9])

ndarr1
----------------------------------------------------
# 결과
▶ array([ 1, 10,  5,  7,  2,  4,  3,  6,  8,  9])
#오름차순 정렬( 기본적으로 )
np.sort(ndarr1) 
--------------------------------------------------
# 결과
▶ array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10])
# 내림차순
np.sort(arr1)[::-1] 
---------------------------------------------------
# 결과
▶ array([10,  9,  8,  7,  6,  5,  4,  3,  2,  1])
li1 = [1,10,5,7,2,4,3,6,8,9]
              ▼
li1.sort() # 오름차순으로 정렬
              ▼
li1
-------------------------------------
# 결과
▶ [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
arr1 → array([ 1, 10,  5,  7,  2,  4,  3,  6,  8,  9])

result = np.sort(err1)

result
-----------------------------------------------------------
# 결과
▶ array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10])
arr2d = np.array([[11,10,12,9],
                  [3,1,4,2],
                  [5,6,7,8]])
                  
arr2d.shape
-------------------------------------
# 결과
(3,4)
# 행 정렬순

np.sort(arr2d ,axis = 0)
-------------------------------
# 결과
▶ array([[ 3,  1,  4,  2],
          [ 5,  6,  7,  8],
          [11, 10, 12,  9]])
# 열 정렬순 

np.sort(arr2d,axis=1)
-------------------------
# 결과
▶ array([[ 9, 10, 11, 12],
          [ 1,  2,  3,  4],
          [ 5,  6,  7,  8]])
# 축의 마지막 방향 

np.sort(arr2d ,axis = -1)
-------------------------------
# 결과
▶ array([[ 9, 10, 11, 12],
          [ 1,  2,  3,  4],
          [ 5,  6,  7,  8]])

728x90
반응형