250x250
Link
๋‚˜์˜ GitHub Contribution ๊ทธ๋ž˜ํ”„
Loading data ...
Notice
Recent Posts
Recent Comments
๊ด€๋ฆฌ ๋ฉ”๋‰ด

Data Science LAB

[Python] NumPy ์ธ๋ฑ์‹ฑ(Indexing) ๋ณธ๋ฌธ

๐Ÿ Python/NumPy

[Python] NumPy ์ธ๋ฑ์‹ฑ(Indexing)

ใ…… ใ…œ ใ…” ใ…‡ 2022. 2. 4. 21:21
728x90
Indexing

1. ํŠน์ • ๋ฐ์ดํ„ฐ๋งŒ ์ถ”์ถœ
2. ์Šฌ๋ผ์ด์‹ฑ(์—ฐ์†๋œ ์ธ๋ฑ์Šค์ƒ์˜ ndarray ์ถ”์ถœ)
3. ํŒฌ์‹œ ์ธ๋ฑ์‹ฑ(Fancy Indexing): ์ผ์ •ํ•œ ์ธ๋ฑ์‹ฑ ์ง‘ํ•ฉ์„ ๋ฆฌ์ŠคํŠธ ๋˜๋Š” ndarray ํ˜•ํƒœ๋กœ ์ง€์ •ํ•ด ํ•ด๋‹น ์œ„์น˜์˜ ๋ฐ์ดํ„ฐ ndarray ๋ฐ˜ํ™˜
4. ๋ถˆ๋ฆฐ ์ธ๋ฑ์‹ฑ(Boolean Indexing) : ํŠน์ • ์กฐ๊ฑด์— ํ•ด๋‹นํ•˜๋Š”์ง€ ์—ฌ๋ถ€์ธ True/False ๊ฐ’ ์ธ๋ฑ์‹ฑ ์ง‘ํ•ฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ True์— ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค ์œ„์น˜์˜ ๋ฐ์ดํ„ฐ์˜ ndarray๋ฐ˜ํ™˜

 

ํŠน์ • ๋ฐ์ดํ„ฐ ์ถ”์ถœ
#1-9๊นŒ์ง€์˜ 1์ฐจ์› ndarray ์ƒ์„ฑ
array1 = np.arange(start = 1, stop = 10)
print('array1:',array1)

value = array1[2]
print('value:',value)
print(type(value))

index๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ฏ€๋กœ array1[2]๋Š” 3๋ฒˆ์จฐ index์œ„์น˜์˜ ๋ฐ์ดํ„ฐ๊ฐ’์„ ์˜๋ฏธ

 

print('๋งจ ๋’ค์˜ ๊ฐ’ :',array1[-1],'๋งจ ๋’ค์—์„œ ๋‘ ๋ฒˆ์งธ ๊ฐ’:',array1[-2])
#output
๋งจ ๋’ค์˜ ๊ฐ’ : 9 ๋งจ ๋’ค์—์„œ ๋‘ ๋ฒˆ์งธ ๊ฐ’: 8
array1[0] = 9
array1[8] = 0
print('array1:',array1)

#output
array1: [9 2 3 4 5 6 7 8 0]

ndarray๋‚ด์˜ ๋ฐ์ดํ„ฐ ๊ฐ’ ์ˆ˜์ • ๊ฐ€๋Šฅ

 

์Šฌ๋ผ์ด์‹ฑ
array1 = np.arange(start=1,stop =10)
array3 = array1[0:3]
print(array3)
print(type(array3))
#output
1 2 3]
<class 'numpy.ndarray'>

array1 = np.arange(start=1,stop=10)
array4 = array1[:3]
print(array4)

array5 = array1[3:]
print(array5)

array6 = array1[:]
print(array6)

#output
[1 2 3]
[4 5 6 7 8 9]
[1 2 3 4 5 6 7 8 9]

 

array1d = np.arange(start=1,stop=10)
array2d = array1d.reshape(3,3)

print(array2d[0])
print(array2d[1])
print('array2d[0] shape:',array2d[0].shape,'array2d[1] shape:',array2d[1].shape)

2์ฐจ์› ndarray์—์„œ ๋’ค์— ์˜ค๋Š” ์ธ๋ฑ์Šค๋ฅผ ์—†์• ๋ฉด 1์ฐจ์› ndarry ๋ฐ˜ํ™˜

 

ํŒฌ์‹œ์ธ๋ฑ์‹ฑ
array1d = np.arange(start=1,stop=10)
array2d = array1d.reshape(3,3)

array3 = array2d[[0,1],2]
print('array2d[[0,1],2] => ',array3.tolist())

array4 = array2d[[0,1],0:2]
print('array2d[[0,1],0:2]',array4.tolist())

array5 = array2d[[0,1]]
print('array2d[[0,1]] => ',array5.tolist())

#output
array2d[[0,1],2] =>  [3, 6]
array2d[[0,1],0:2] [[1, 2], [4, 5]]
array2d[[0,1]] =>  [[1, 2, 3], [4, 5, 6]]

๋ฆฌ์ŠคํŠธ๋‚˜ ndarray๋กœ ์ธ๋ฑ์Šค ์ง‘ํ•ฉ์„ ์ง€์ •ํ•˜๋ฉด ํ•ด๋‹น ์œ„์น˜์˜ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ndarray๋ฐ˜ํ™˜

 

๋ถˆ๋ฆฐ ์ธ๋ฑ์‹ฑ
array1d = np.arange(start=1,stop=10)

array3 = array1d[array1d>5]
print('array1d>5 ๋ถˆ๋ฆฐ ์ธ๋ฑ์‹ฑ ๊ฒฐ๊ณผ ๊ฐ’ : ',array3)

#output
array1d>5 ๋ถˆ๋ฆฐ ์ธ๋ฑ์‹ฑ ๊ฒฐ๊ณผ ๊ฐ’ :  [6 7 8 9]

๋ถˆ๋ฆฐ ์ธ๋ฑ์‹ฑ์€ ์กฐ๊ฑด ํ•„ํ„ฐ๋ง๊ณผ ๊ฒ€์ƒ‰์„ ๋™์‹œ์— ํ•  ์ˆ˜ ์žˆ์Œ

 

#๋„˜ํŒŒ์ด ndarray ๊ฐ์ฒด์— ์กฐ๊ฑด์‹ ํ• ๋‹น
array1d > 5

#output
array([False, False, False, False, False,  True,  True,  True,  True])

 

boolean_indexes = np.array([False, False, False, False, False,  True,  True,  True,  True])
array3 = array1d[boolean_indexes]
print('๋ถˆ๋ฆฐ ์ธ๋ฑ์Šค๋กœ ํ•„ํ„ฐ๋ง ๊ฒฐ๊ณผ :',array3)

#output
๋ถˆ๋ฆฐ ์ธ๋ฑ์Šค๋กœ ํ•„ํ„ฐ๋ง ๊ฒฐ๊ณผ : [6 7 8 9]

indexes = np.array([5,6,7,8])
array4 = array1d[indexes]
print('์ผ๋ฐ˜ ์ธ๋ฑ์Šค๋กœ ํ•„ํ„ฐ๋ง ๊ฒฐ๊ณผ : ',array4)

#output
์ผ๋ฐ˜ ์ธ๋ฑ์Šค๋กœ ํ•„ํ„ฐ๋ง ๊ฒฐ๊ณผ :  [6 7 8 9]

์ธ๋ฑ์Šค ์ง‘ํ•ฉ์„ ๋งŒ๋“ค์–ด ํ•„ํ„ฐ๋ง ํ•œ ๊ฒƒ๊ณผ ๊ฒฐ๊ณผ ๋™์ผํ•จ

 

 

728x90

'๐Ÿ Python > NumPy' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] Numpy ๋‚œ์ˆ˜ ์ƒ์„ฑ (Random)  (0) 2022.08.25
[Python] np.linspace()ํ•จ์ˆ˜  (0) 2022.05.23
[Python] NumPy๋ฅผ ์ด์šฉํ•œ ํ–‰๋ ฌ์˜ ์ •๋ ฌ  (0) 2022.02.06
NumPy๋ž€?  (0) 2022.02.03
Comments