๋ํ์ด(Numpy)
8. Subsetting, Slicing
8.1 Subsetting
a
array([5, 7, 9])
a[2]
9
8.2 Slicing
a[0:2]
array([5, 7])
b
array([[1.5, 2. , 3. ],
[4. , 5. , 6. ]])
b[0:2, 1]
array([2., 5.])
c
array([[[1.5, 2. , 3. ],
[4. , 5. , 6. ]],
[[3. , 2. , 1. ],
[4. , 5. , 6. ]]])
c[1, :]
array([[3., 2., 1.],
[4., 5., 6.]])
#์ญ์ ์ ๋ ฌ
a[::-1]
array([9, 7, 5])
8.3 Boolean indexing
a
array([5, 6, 9])
a[a<6]
array([5])
8.4 Fancy Indexing
b
array([[1.5, 2. , 3. ],
[4. , 5. , 6. ]])
# Select elements (1,0),(0,1),(1,2) and (0,0)
b[[1,0,1,0], [0,1,2,0]]
array([4. , 2. , 6. , 1.5])
9. Array Manipulation
9.1 Transposing Array
b
array([[1.5, 2. , 3. ],
[4. , 5. , 6. ]])
transpose(b)
: ํ๊ณผ ์ด ๋ณ๊ฒฝ ex) (3, 2) -> (2, 3)
#ํ์ด ๋ฐ๊พธ๊ธฐ
i = np.transpose(b)
i
array([[1.5, 4. ],
[2. , 5. ],
[3. , 6. ]])
i.T
array([[1.5, 2. , 3. ],
[4. , 5. , 6. ]])
9.2 Changing Array Shape
b
array([[1.5, 2. , 3. ],
[4. , 5. , 6. ]])
b.revel()
: 1์ฐจ์์ผ๋ก ๋ณ๊ฒฝ
# flatten(์ฐจ์์ถ์) the array
b.ravel()
array([1.5, 2. , 3. , 4. , 5. , 6. ])
g
array([[-0.5, 0. , 0. ],
[-3. , -3. , -3. ]])
g.reshape(3, 2)
array([[-0.5, 0. ],
[ 0. , -3. ],
[-3. , -3. ]])
9.3 Adding/Removing Elements
h
array([1, 2, 3])
g
array([[-0.5, 0. , 0. ],
[-3. , -3. , -3. ]])
np.append(h, g)
array([ 1. , 2. , 3. , -0.5, 0. , 0. , -3. , -3. , -3. ])
a
array([5, 7, 9])
np.insert(a, x, y)
: ๋ฐฐ์ด ์์น ๊ฐ x์ธ ๊ณณ์ y ์ฝ์
np.insert(a, 1, 5) # array a์์ ๋ฐฐ์ด ์์น ๊ฐ์ด 1์ธ ๊ณณ์ 5 ์ฝ์
array([5, 5, 7, 9])
np.delete(a, [x])
: ๋ฐฐ์ด์ x์ธ ๊ฐ ์ญ์
np.delete(a, [2]) # ๋ฐฐ์ด์ 2์ธ ๊ฐ ์ญ์
array([5, 7])
9.4 Combinating Arrays
a
array([5, 7, 9])
d
array([10, 15, 20, 25])
np.concatenate(a, b, axis=0)
: ๋ ๋ฐฐ์ด ํฉ์นจ
np.concatenate((a, d), axis=0)
array([ 5, 7, 9, 10, 15, 20, 25])
np.concatenate((a,h),axis=1)
-> ์ค๋ฅ๋ ์ด์ ๋ 1์ฐจ์ ๋ฐฐ์ด์ด๊ธฐ ๋๋ฌธ์
axis=1์์ ์๋ฌ๊ฐ ๋ฐ์ํ ์ด์ ๋ ๋ฐฉํฅ์ด axis=0 ํ๋ ๋ฟ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
a
array([5, 7, 9])
b
array([4, 5, 6])
np.vstack
: ๋ ๋ฐฐ์ด์ ์ธ๋ก๋ก ํฉ์น ๋
# v: vertica;(์์ง์ ์ธ)
np.vstack((a, b))
array([[5, 7, 9],
[4, 5, 6]])
e
array([[7, 7],
[7, 7]])
f
array([[1., 0.],
[0., 1.]])
np.hstack
: ๋ ๋ฐฐ์ด์ ๊ฐ๋ก๋ก ํฉ์น ๋
# h: horizontal(์ํ์ ์ธ)
np.hstack((e, f))
array([[7., 7., 1., 0.],
[7., 7., 0., 1.]])
9.5 Splitting Arrays
a
array([5, 7, 9])
np.hsplit(x, a)
: ํ ๊ฐ์ ๋ฐฐ์ด์ ์ํ ์ถ (์ด ๋ฐฉํฅ, column-wise)์ผ๋ก ์ฌ๋ฌ ๊ฐ์ ํ์ ๋ฐฐ์ด๋ก ๋ถํ ํ๊ธฐ
np.hsplit(a, 3)
[array([5]), array([7]), array([9])]
c
array([[[1.5, 2. , 1. ],
[4. , 5. , 6. ]],
[[3. , 2. , 3. ],
[4. , 5. , 6. ]]])
np.vsplit(x, a)
: ํ ๊ฐ์ ๋ฐฐ์ด์ ์์ง ์ถ(ํ ๋ฐฉํฅ, row-wise)์ผ๋ก ์ฌ๋ฌ ๊ฐ์ ํ์ ๋ฐฐ์ด๋ก ๋ถํ ํ๊ธฐ
np.vsplit(c, 2)
[array([[[1.5, 2. , 1. ],
[4. , 5. , 6. ]]]),
array([[[3., 2., 3.],
[4., 5., 6.]]])]
๋๊ธ