import numpy as np
import numpy.random as np
a = np.arrange(15).reshape(3,5)
print(a)
# [[ 0 1 2 3 4]
# [ 5 6 7 8 9]
# [10 11 12 13 14]]
3행 5열의 array
np.arrange() 와 np.linspace()를 이용하여 연속적인 데이터 생성
# 10이상 30미만까지 5씩 차이나는 배열 생성
print(np.arrange(10,30,5))
[10 15 20 25]
# 0 ~ 99 까지 100등분
x = np.linspace(0, 99, 100)
print(x)
# [ 0. 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. 67. 68. 69. 70. 71.
# 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89.
# 90. 91. 92. 93. 94. 95. 96. 97. 98. 99.]
배열 출력 - print arrays
3D 배열은 2차원 배열이 N개 출력되는 형식으로 나타남
b = np.arange(12).reshape(4,3)
print(b)
# [[ 0 1 2]
# [ 3 4 5]
# [ 6 7 8]
# [ 9 10 11]]
c = np.arange(24).reshape(2,3,4)
print(c)
# [[[ 0 1 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]]
#
# [[12 13 14 15]
# [16 17 18 19]
# [20 21 22 23]]]
# reshape()을 통해 데이터는 유지한채 차원만 변경가능
# [10000] 배열을 [100, 100] 배열로 변경
np.arange(10000).reshape(100,100)
numpy에서 수치연산은 기본적으로 숫자 각각의 요소에 연산 적용
a = np.array( [20,30,40,50] )
b = np.arange( 4 )
print(b)
# [0 1 2 3]
# a에서 b에 각각의 원소를 -연산
c = a-b
print(c)
# [20 29 38 47]
# b 각각의 원소에 제곱 연산
print(b**2)
# [0 1 4 9]
# a 각각의 원소에 *10 연산
print(10*np.sin(a))
# [ 9.12945251 -9.88031624 7.4511316 -2.62374854]
# a 각각의 원소가 35보다 작은지 Boolean 결과
print(a<35)
# [ True True False False]
2차원 배열을 행렬이라고 볼때, 여러가지 곱셈법
.sum(): 모든 요소의 합
.min(): 모든 요소 중 최소값
.max(): 모든 요소 중 최대값
.argmax(): 모든 요소 중 최대값의 인덱스
.cumsum(): 모든 요소의 누적합
Numpy 차원 변경 함수
numpy에서 array 연산시 편리성을 위해 shape가 다른 np.array끼리 연산을 지원해주기 위한 기법
np.array([1,2,3,4,5]) * 2
# 결과
# [2,4,6,8,10]
#내부적 수행 과정
# → np.array([1,2,3,4,5]) * np.array([2,2,2,2,2])
차원(ndim)이 같고, 각 축(axis)의 값이 같거나 1일 경우 연산이 가능
print(np.arange(4) * 2)
# [0 2 4 6]
print(np.ones((3,4)) * np.arange(4))
# [[0. 1. 2. 3.]
# [0. 1. 2. 3.]
# [0. 1. 2. 3.]]
print(np.arange(3).reshape((3,1)) * np.arange(3))
# [[0 0 0]
# [0 1 2]
# [0 2 4]]
공식문서 : https://numpy.org/doc/stable/user/basics.broadcasting.html