Knowledge Map

numpy - 1 본문

PYTHON

numpy - 1

2016. 5. 10. 17:05

출처 : http://pinkwink.kr/715


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# coding: utf-8
 
import numpy as np
 
print("\n◇ 배열내의 모든 값들이 1인 배열은 ones를 사용")
print np.ones((4,4),dtype=int)
 
print("\n◇ 배열내의 모든 값들이 0인 배열은 zeros를 사용")
a1 = np.zeros((5,2), dtype=int)
print a1
 
print("\n◇ 단위배열은 eye를 사용")
= np.eye(4, dtype=int)
print b
 
print("\n◇ 임의의 배열을 만들때에는 array를 사용")
stringArray = np.array([[1,2,3],['se','ew','zx'],['a','b','c']],dtype=np.string_)
print stringArray
 
print("\n◇ 배열크기를 알고 싶을땐 shape, \n   type을 지정, 알고 싶을때에는 dtype, \n   type을 변경하는 것은 astype\n")
= b.astype(float)
print 'C의 배열 크기는',c.shape,'\n'
print '--float로 변경--\n',c,'\n'
print '--int로 변경--\n',c.astype(int),'\n'
print '--각 요소에 각각 1 을 더하고 다시 각 요소들을 제곱 했다.(행렬곱이 아니다.)--'
c1=(c+1)**2
print c1
 
print '배열간 연산도 가능, 하지만 이때의 * 곱은 각 배열 요소간의 곱일뿐이다. 행렬 곱이 아니다.'
print c*c1
print '\n행렬곱은 dot() 을 이용해야 한다. 하지만 배열과 행렬은 각각 이것이 다르다.'
print c.dot(c1)
c2 = c.dot(c1).dot(c1)
print c2
 
print '\n숫자들을 이용해서 원하는 행, 값을 출력할수 있다.'
print '2번째 행 =>',c2[1]
print stringArray
print '\n열을 나오게 하는 방법도 있지만 \n:를 이용한 범위로 하면 세로로 나오고\n아니면 그 열이 가로로 나온다.'
print stringArray[:3,1:2]
print ''
print stringArray[0]
print ''
print stringArray[1][2]
print ''
print stringArray[2,2]
print ''
print stringArray[:3]
print ''
print stringArray[1:,1:]
 
print '\n◇ 등간격(동일한 간격)의 숫자 배열을 지정할수 있는 arange()\n'
data2 = np.arange(10)
print data2
print data2[1:3]
print data2[1:]
data2_sub = data2[2:6]
print data2_sub
 
print '\n파이썬내의 모든 값들은 객체이다. \n따라서 일부 값을 다른 변수와 연결시켜 놓아도 그 값을 변경하면\n그 주소 값을 가지고 있는 모든 값이 변할수 있다.\n'
 
data2_sub[0:3= 99
print 'data2_sub',data2_sub
print 'data2',data2
 
 
cs


출력값


◇ 배열내의 모든 값들이 1인 배열은 ones를 사용
[[1 1 1 1]
 [1 1 1 1]
 [1 1 1 1]
 [1 1 1 1]]
 
◇ 배열내의 모든 값들이 0인 배열은 zeros를 사용
[[0 0]
 [0 0]
 [0 0]
 [0 0]
 [0 0]]
 
◇ 단위배열은 eye를 사용
[[1 0 0 0]
 [0 1 0 0]
 [0 0 1 0]
 [0 0 0 1]]
 
◇ 임의의 배열을 만들때에는 array를 사용
[['1' '2' '3']
 ['se' 'ew' 'zx']
 ['a' 'b' 'c']]
 
◇ 배열크기를 알고 싶을땐 shape, 
   type을 지정, 알고 싶을때에는 dtype, 
   type을 변경하는 것은 astype
 
C의 배열 크기는 (4, 4) 
 
--float로 변경--
[[ 1.  0.  0.  0.]
 [ 0.  1.  0.  0.]
 [ 0.  0.  1.  0.]
 [ 0.  0.  0.  1.]] 
 
--int로 변경--
[[1 0 0 0]
 [0 1 0 0]
 [0 0 1 0]
 [0 0 0 1]] 
 
--각 요소에 각각 1 을 더하고 다시 각 요소들을 제곱 했다.(행렬곱이 아니다.)--
[[ 4.  1.  1.  1.]
 [ 1.  4.  1.  1.]
 [ 1.  1.  4.  1.]
 [ 1.  1.  1.  4.]]
배열간 연산도 가능, 하지만 이때의 * 곱은 각 배열 요소간의 곱일뿐이다. 행렬 곱이 아니다.
[[ 4.  0.  0.  0.]
 [ 0.  4.  0.  0.]
 [ 0.  0.  4.  0.]
 [ 0.  0.  0.  4.]]
 
행렬곱은 dot() 을 이용해야 한다. 하지만 배열과 행렬은 각각 이것이 다르다.
[[ 4.  1.  1.  1.]
 [ 1.  4.  1.  1.]
 [ 1.  1.  4.  1.]
 [ 1.  1.  1.  4.]]
[[ 19.  10.  10.  10.]
 [ 10.  19.  10.  10.]
 [ 10.  10.  19.  10.]
 [ 10.  10.  10.  19.]]
 
숫자들을 이용해서 원하는 행, 값을 출력할수 있다.
2번째 행 => [ 10.  19.  10.  10.]
[['1' '2' '3']
 ['se' 'ew' 'zx']
 ['a' 'b' 'c']]
 
열을 나오게 하는 방법도 있지만 
:를 이용한 범위로 하면 세로로 나오고
아니면 그 열이 가로로 나온다.
[['2']
 ['ew']
 ['b']]
 
['1' '2' '3']
 
zx
 
c
 
[['1' '2' '3']
 ['se' 'ew' 'zx']
 ['a' 'b' 'c']]
 
[['ew' 'zx']
 ['b' 'c']]
 
◇ 등간격(동일한 간격)의 숫자 배열을 지정할수 있는 arange()
 
[0 1 2 3 4 5 6 7 8 9]
[1 2]
[1 2 3 4 5 6 7 8 9]
[2 3 4 5]
 
파이썬내의 모든 값들은 객체이다. 
따라서 일부 값을 다른 변수와 연결시켜 놓아도 그 값을 변경하면
그 주소 값을 가지고 있는 모든 값이 변할수 있다.
 
data2_sub [99 99 99  5]
data2 [ 0  1 99 99 99  5  6  7  8  9]
 
Process finished with exit code 0
 
cs


'PYTHON' 카테고리의 다른 글

파이썬 - 트위터 연계 1  (0) 2016.05.13
파이썬 으로 doc 파일 읽기  (0) 2016.05.11
IPython 으로 간단한 실습  (0) 2016.05.09
IPython notebook 단축키 모음  (0) 2016.05.09
엑셀 라이브러리 사용하기  (0) 2016.05.09
Comments