본문 바로가기

백엔드개발자 준비하기 - 파이썬

[파이썬] numpy ndarray

예시1

import numpy as np
a1 = np.array([1, 2, 3, 4, 5])
print([1, 2, 3, 4, 5])
print(a1)
print(type(a1))

결과

[1, 2, 3, 4, 5]
[1 2 3 4 5]
<class 'numpy.ndarray'>

 

예시2

a2 = np.arange(10)
print(a2)

결과

[0 1 2 3 4 5 6 7 8 9]

 

예시3

# 변수 a3, 100아래의 3의 배수

a3 = np.arange(3, 100, 3)
print(a3)

결과

[ 3  6  9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72
 75 78 81 84 87 90 93 96 99]

 

예시4

# 1에서 부터 10아래 0.5씩 증가는 숫자, step = 0.5
a4 = np.arange(1.3,10, 0.5)
print(a4)


#lista = [i for i in range(1.3, 10, 0.5)]

결과

[1.3 1.8 2.3 2.8 3.3 3.8 4.3 4.8 5.3 5.8 6.3 6.8 7.3 7.8 8.3 8.8 9.3 9.8]

 

예시5

a4 = np.linspace(0, 10, 15) #수평으로 잘랐을 때 구분해달라는 말, arange는 두번째에 스탑을 해주는 것이 안들어갔음 
# 하지만 linspace는 들어감 
print(a4)

결과

[ 0.          0.71428571  1.42857143  2.14285714  2.85714286  3.57142857
  4.28571429  5.          5.71428571  6.42857143  7.14285714  7.85714286
  8.57142857  9.28571429 10.        ]

 

예시6

#, 대신 .로 들어감 정수대신 실수로 들어간다는 의미
a5 = np.zeros(5)
print(a5)

#실수 -> 정수로 바꿈 
a6 = np.ones(5, dtype = np.int64)
print(a6)
#정수 ->float으로 바꿈 
a6.astype(np.float64)

결과

[0. 0. 0. 0. 0.]
[1 1 1 1 1]
Out[10]:
array([1., 1., 1., 1., 1.])

 

예시7

#정수를 실수로 강제통일
lista = [1, 2, 3.5, 4.2]
a7 = np.array(lista)
print(a7)

#문자열로 강제로 통일
listb = [1, 2, 'abc', 'def']
a8 = np.array(listb)
print(a8)
#a8.astype(np.int64)

결과

[1.  2.  3.5 4.2]
['1' '2' 'abc' 'def']

 

예시8

#a8.dtype # ('<U11') = 유니코드라는 뜻
print(a7.dtype)
print(a7.ndim) #몇차원 array인지를 물어보는 것 
print(a7.shape) #어떤 모양인지를 물어보는 것 , 투플형태로 일차원 배열이라는 결과가 나옴 
print(a7.size) #이 배열안에 있는 모든 elument들의 갯수 

print(a7.itemsize) #데이터 타입의 byte사이즈
print(a7.data)

결과

float64
1
(4,)
4
8
<memory at 0x00000132A97AF940>

 

예시9

a10 = np.arange(10, 100, 5)
print(a10)

#특정 인덱스 
print(a10[0], a10[-1])

#스타트, 스탑
print(a10[3:7])

#스타트, 스탑, 스텝
print(a10[2:9:2])

#인덱싱 하고 파이썬 리스트하고 결과는 똑같음

결과

[10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95]
10 95
[25 30 35 40]
[20 30 40 50]

 

예시10

a10 = np.arange(10, 100, 5)
print(10)
print(a10[[1, 3, 7]])

#파이썬 리스트를 사용
list10 = [x for x in range(10, 100, 5)]
print(list10)

#print(list10[[1, 3, 7]])

결과

10
[15 25 45]
[10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]

 

예시11

#조건식 사용 

a10 = np.arange(10, 100, 5)
print(a10)
print(a10[a10%10==5])

#내가 원하는 정보만 뽑아보기..?
x= (a10%10==5) 
print(x)
print(x.shape)
print(a10.shape)
print(a10[x])

결과

[10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95]
[15 25 35 45 55 65 75 85 95]
[False  True False  True False  True False  True False  True False  True
 False  True False  True False  True]
(18,)
(18,)
[15 25 35 45 55 65 75 85 95]

 

예시12

#그냥 담아줌 (2개의 리스트를 연결)
lista = [x for x in range(3)]
listb = [x for x in range(10, 15)]
print(lista)
print(listb)
print(lista + listb)
#print(lista - listb)

결과

[0, 1, 2]
[10, 11, 12, 13, 14]
[0, 1, 2, 10, 11, 12, 13, 14]

 

에시13

#계산을 하려고 함 
a1 = np.arange(5)
a2 = np.arange(10,15)
print(a1)
print(a2)
print('add:',a1+ a2)
#연결할때
print(  np.concatenate((a1, a2))   )

print('sub:', a1-a2)
print('mul:',a1*a2)
print('div:',a1/a2)

결과

[0 1 2 3 4]
[10 11 12 13 14]
add: [10 12 14 16 18]
[ 0  1  2  3  4 10 11 12 13 14]
sub: [-10 -10 -10 -10 -10]
mul: [ 0 11 24 39 56]
div: [0.         0.09090909 0.16666667 0.23076923 0.28571429]

'백엔드개발자 준비하기 - 파이썬' 카테고리의 다른 글

[파이썬] numpy ndarrary2d(2차원)  (0) 2023.02.22
[파이썬] numpy ndarrary2d(2차원)  (0) 2023.02.13
[파이썬] numpy  (0) 2023.02.13
[파이썬] random  (0) 2023.02.13
[파이썬] requests  (0) 2023.02.13