Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

Contents

Python NumPy................................................ 1
..Thuật toán
NumPy Getting Started .............................. 1 Python
Framework
NumPy Creating Arrays ............................. 1 Machine learning
NumPy Array Indexing .............................. 1 Deep learning
Mấy cái sota
NumPy Array Slicing ................................. 2 Linear algebra
Statistic & probability
NumPy Data Types..................................... 2 Pytorch, sklearn, caffe, tensorflow, keras
NumPy Array Copy vs View...................... 2
Python NumPy
NumPy Array Shape ................................... 2 NumPy Getting Started
import numpy
NumPy Array Reshaping :định hình .......... 2 arr = numpy.array([1, 2, 3, 4, 5])
NumPy Array Iterating :lặp lại ................... 3 print(arr)
[1 2 3 4 5]
NumPy Joining Array ................................. 3
import numpy as np
NumPy Splitting Array ............................... 3 arr = np.array([1, 2, 3, 4, 5])
print(arr)
NumPy Searching Arrays ........................... 4 [1 2 3 4 5]
NumPy Sorting Arrays ............................... 4
NumPy Creating Arrays
NumPy Filter Array Mảng lọc.................... 4 import numpy as np
arr = np.array(42)
NumPy ufuncs ................................................ 5 print(arr)
Create Your Own ufunc ............................. 5 import numpy as np
arr = np.array([1, 2, 3, 4, 5])
Simple Arithmetic : Số học đơn giản ......... 5 print(arr)
import numpy as np
Rounding Decimals .................................... 6 arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr)
NumPy Logs : hàm logrit ........................... 6 42
NumPy Summations : tổng......................... 6 [1 2 3 4 5]
[[1 2 3]
NumPy Products ......................................... 6 [4 5 6]]
NumPy Differences .................................... 6 NumPy Array Indexing
NumPy LCM Lowest Common Multiple import numpy as np
arr = np.array([1, 2, 3, 4])
bcnn ............................................................ 7 print(arr[2] + arr[3])
NumPy LCM Lowest Common Multiple
import numpy as np
UCnL .......................................................... 7 arr = np.array([[1,2,3,4,5], [6,7,8,9,10]])
NumPy Trigonometric Functions: Hàm print('2nd element on 1st dim: ', arr[0, 1])
print('Last element from 2nd dim: ', arr[1, -1])
1 lượng giác ................................................... 7 7
NumPy Hyperbolic Functions: ................... 7 2nd element on 1st dim: 2
Last element from 2nd dim: 10
NumPy Set Operations ................................... 7
Huy init | https://www.facebook.com/huyinit13
arr[0] = 42
NumPy Array Slicing print(arr)
Cắt mảng: print(x)
[start:end:step]. print()
import numpy as np import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7]) arr = np.array([1, 2, 3, 4, 5])
print(arr[1:5:2]) x = arr.view()
print(arr[::2]) arr[0] = 42
print() print(arr)
import numpy as np print(x)
arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]) print()
print(arr[1, 1:4]) import numpy as np
print(arr[0:2, 2]) arr = np.array([1, 2, 3, 4, 5])
print(arr[0:2, 1:4]) x = arr.view()
[2 4] x[0] = 31
[1 3 5 7] print(arr)
print(x)
[7 8 9] [42 2 3 4 5]
[3 8] [1 2 3 4 5]
[[2 3 4]
[7 8 9]] [42 2 3 4 5]
[42 2 3 4 5]
NumPy Data Types
i - integer [31 2 3 4 5]
b - boolean [31 2 3 4 5]
u - unsigned integer
f - float NumPy Array Shape
c - complex float #The example above returns (2, 4), which means that
m - timedelta the array has 2 dimensions, and each dimension has 4
M - datetime elements.
O - object import numpy as np
S - string arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
U - unicode string print(arr.shape)
V - fixed chunk of memory for other type ( void ) (2, 4)

import numpy as np NumPy Array Reshaping :định hình


arr = np.array([1, 2, 3, 4]) #Convert the following 1-D array with 12 elements
print(arr.dtype) into a 2-D array.
print() import numpy as np
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
arr = np.array([1, 2, 3, 4], dtype='S') newarr = arr.reshape(4, 3)
print(arr) print(newarr)
print(arr.dtype) print()
int64 #You are allowed to have one "unknown" dimension.
import numpy as np
[b'1' b'2' b'3' b'4'] arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
|S1 newarr = arr.reshape(2, 2, -1)
print(newarr)
2 NumPy Array Copy vs View [[ 1 2 3]
import numpy as np [ 4 5 6]
arr = np.array([1, 2, 3, 4, 5]) [ 7 8 9]
x = arr.copy() [10 11 12]]

Huy init | https://www.facebook.com/huyinit13


arr = np.concatenate((arr1, arr2), axis=0)
[[[1 2] print(arr)
[3 4]] [1 2 3 4 5 6]
[[1 2 5 6]
[[5 6] [3 4 7 8]]
[7 8]]] [[1 2]
[3 4]
NumPy Array Iterating :lặp lại [5 6]
[7 8]]
import numpy as np
arr = np.array([1, 2, 3])
for x in arr: #Nối các mảng bằng cách sử dụng các hàm ngăn xếp
print(x,end=' ') import numpy as np
print() arr1 = np.array([1, 2, 3])
import numpy as np arr2 = np.array([4, 5, 6])
arr = np.array([[1, 2, 3], [4, 5, 6]]) #nối hai mảng 1-D dọc theo trục , điều này sẽ dẫn đến
for x in arr: việc xếp chúng chồng lên nhau
print(x) arr = np.stack((arr1, arr2), axis=0)
for x in arr: print(arr)
print() arr = np.stack((arr1, arr2), axis=1)
for y in x: print(arr)
print(y,end=' ') #hstack() xếp chồng dọc theo hàng.
123 arr = np.hstack((arr1, arr2))
[1 2 3] print(arr)
[4 5 6] #vstack() xếp chồng dọc theo các cột
arr = np.vstack((arr1, arr2))
123 print(arr)
456 #dstack() xếp chồng theo chiều cao, bằng với chiều
sâu.
import numpy as np arr = np.dstack((arr1, arr2))
arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) print(arr)
for x in np.nditer(arr): [[1 2 3]
print(x,end=' ') [4 5 6]]
print() [[1 4]
import numpy as np [2 5]
arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) [3 6]]
for x in np.nditer(arr[:, ::2]): [1 2 3 4 5 6]
print(x,end=' ') [[1 2 3]
12345678 [4 5 6]]
1357 [[[1 4]
[2 5]
NumPy Joining Array [3 6]]]
import numpy as np
arr1 = np.array([1, 2, 3]) NumPy Splitting Array
arr2 = np.array([4, 5, 6]) import numpy as np
arr = np.concatenate((arr1, arr2)) arr = np.array([1, 2, 3, 4, 5, 6])
print(arr) newarr = np.array_split(arr, 3)#dùng array_split,tách
import numpy as np thành 3 lần
3 arr1 = np.array([[1, 2], [3, 4]]) print(newarr)
arr2 = np.array([[5, 6], [7, 8]]) print(newarr[0])
arr = np.concatenate((arr1, arr2), axis=1) print(newarr[1])
print(arr) print(newarr[2])

Huy init | https://www.facebook.com/huyinit13


newarr = np.array_split(arr, 4)
print(newarr) #searchsorted(): tìm kiếm trong mảng và trả về chỉ
[array([1, 2]), array([3, 4]), array([5, 6])] mục nơi giá trị được chỉ định sẽ được chèn vào để duy
[1 2] trì thứ tự tìm kiếm.import numpy as np
[3 4] #[1 2 3]chứa ba chỉ mục trong đó 2, 4, 6 sẽ được chèn
[5 6] vào mảng ban đầu để duy trì thứ tự.
[array([1, 2]), array([3, 4]), array([5]), array([6])] x = np.searchsorted(arr, [2, 4, 6])#tìm kiếm nhiều
Tách mảng 2 chiều print(x)
#Chia mảng 2-D thành ba mảng 2-D. arr = np.array([6, 7, 8, 9])
import numpy as np #Số 7 nên được chèn vào chỉ mục 1 để giữ nguyên thứ
arr = np.array([[1, 2], [3, 4], tự sắp xếp.
[5, 6], [7, 8], x = np.searchsorted(arr, 7)
[9, 10], [11, 12]]) print(x)
newarr = np.array_split(arr, 3) #Số 7 nên được chèn vào chỉ mục 2 để giữ nguyên thứ
print(newarr) tự sắp xếp.
#Tách mảng 2-D thành 1 mảng 2-D dọc theo các x = np.searchsorted(arr, 7, side='right')
hàng/cột. print(x)
newarr=np.array_split(arr,1,axis=1) (array([3, 5, 6]),)
print(newarr) (array([1, 3, 5, 6]),)
#hsplit() ,vsplit()và dsplit() có thể thay thế cho [1 3 7]
hstack(),vstack()và dstack() 1
newarr = np.hsplit(arr,2) 2
print(newarr)
[array([[1, 2], NumPy Sorting Arrays
[3, 4]]), array([[5, 6], import numpy as np
[7, 8]]), array([[ 9, 10], arr = np.array([3, 2, 0, 1])
[11, 12]])] print(np.sort(arr))
[array([[ 1, 2], arr = np.array(['banana', 'cherry', 'apple'])
[ 3, 4], print(np.sort(arr))
[ 5, 6], arr = np.array([[3, 2, 4], [5, 0, 1]])
[ 7, 8], print(np.sort(arr))
[ 9, 10], [0 1 2 3]
[11, 12]])] ['apple' 'banana' 'cherry']
[array([[ 1], [[2 3 4]
[ 3], [0 1 5]]
[ 5], NumPy Filter Array Mảng lọc
[ 7], #Getting some elements out of an existing array and
[ 9], creating a new array out of them is called filtering.
[11]]), array([[ 2], import numpy as np
[ 4], arr = np.array([41, 42, 43, 44])
[ 6], x = arr[[True, False, True, False]]
[ 8], print(x)
[10],
[12]])] # Create an empty list
filter_arr = []
NumPy Searching Arrays # go through each element in arr
import numpy as np for element in arr:
arr = np.array([1, 2, 3, 4, 5, 4, 4]) # if the element is higher than 42, set the value to
4 x = np.where(arr == 4) True, otherwise False:
print(x) if element > 42:
x = np.where(arr%2 == 0) filter_arr.append(True)
print(x) else:

Huy init | https://www.facebook.com/huyinit13


filter_arr.append(False) <class 'numpy.ufunc'>
<class 'builtin_function_or_method'>
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)
Simple Arithmetic : Số học đơn
giản
filter_arr = arr > 42 Bạn có thể sử dụng các toán tử số học + - * / trực tiếp
newarr = arr[filter_arr] giữa các mảng NumPy, nhưng phần này thảo luận về
print(filter_arr) một phần mở rộng tương tự, trong đó chúng ta có các
print(newarr) hàm có thể lấy bất kỳ đối tượng giống mảng nào, ví
import numpy as np dụ danh sách, bộ giá trị, v.v. và thực hiện số học
có điều kiện .
arr = np.array([1, 2, 3, 4, 5, 6, 7]) Arithmetic Conditionally: có nghĩa là chúng ta có
filter_arr = arr % 2 == 0 thể xác định các điều kiện mà phép toán số học sẽ xảy
newarr = arr[filter_arr] ra.
print(filter_arr) import numpy as np
print(newarr) arr1 = np.array([10, 11, 12, 13, 14, 15])
[41 43] arr2 = np.array([20, 21, 22, 23, 24, 25])
[False, False, True, True] newarr = np.add(arr1, arr2)
[43 44] print(newarr)
[False False True True] newarr = np.subtract(arr1, arr2)
[43 44] print(newarr)
[False True False True False True False] newarr = np.multiply(arr1, arr2) #1D
[2 4 6] print(newarr)
newarr = np.divide(arr1, arr2)
NumPy ufuncs print(newarr)
ufuncs là viết tắt của "Universal Functions" và chúng newarr = np.power(arr1, arr2)
là các hàm NumPy hoạt động trên ndarrayđối tượng. print(newarr)
ufuncs được sử dụng để triển khai vectơ hóa trong [30 32 34 36 38 40]
NumPy, cách này nhanh hơn so với việc lặp qua các [-10 -10 -10 -10 -10 -10]
phần tử. [200 231 264 299 336 375]
Create Your Own ufunc [0.5 0.52380952 0.54545455 0.56521739
0.58333333 0.6 ]
Để tạo ufunc của riêng bạn, bạn phải xác định một
[ 7766279631452241920 3105570700629903195
hàm, giống như bạn làm với các hàm bình thường
5729018530666381312
trong Python, sau đó bạn thêm nó vào thư viện ufunc
-4649523274362944347 -1849127232522420224
NumPy của mình bằng frompyfunc()phương thức.
1824414961309619599]
Các frompyfunc()phương pháp có những lập luận như
sau:
import numpy as np
1. function - tên của hàm.
arr1 = np.array([10, 20, 30, 40, 50, 60])
2. inputs - số lượng đối số đầu vào (mảng).
arr2 = np.array([3, 7, 9, 8, 2, 33])
3. outputs - số lượng mảng đầu ra.
newarr = np.mod(arr1, arr2)#phần dư
import numpy as np
print(newarr)
def myadd(x, y):
#Bạn nhận được kết quả tương tự khi sử dụng
return x+y
remainder()hàm:
myadd = np.frompyfunc(myadd, 2, 1)
newarr = np.remainder(arr1, arr2)
print(myadd([1, 2, 3, 4], [5, 6, 7, 8]))
print(newarr)
#Kiểm tra xem một Hàm có phải là một chức năng
newarr = np.divmod(arr1, arr2)
5 không
print(newarr)
print(type(np.add))
newarr = np.absolute(arr1)#giá trị tuyệt đối
print(type(np.concatenate))
print(newarr)
#print(type(np.blahblah)) => lỗi
[6 8 10 12]
Huy init | https://www.facebook.com/huyinit13
#Ví dụ trên sẽ trả về [1 6 3 0 0 27] là phần còn lại khi 2.80735492 3. 3.169925 ]
bạn chia (10% 3), (20% 7) (30% 9), v.v. [0. 0.30103 0.47712125 0.60205999 0.69897
#Ví dụ dưới sẽ trả về: (array ([3, 2, 3, 5, 25, 1]), array 0.77815125
([1, 6, 3, 0, 0, 27]))Mảng đầu tiên đại diện cho các 0.84509804 0.90308999 0.95424251]
thương số .Mảng thứ hai đại diện cho phần dư [0. 0.69314718 1.09861229 1.38629436
[ 1 6 3 0 0 27] 1.60943791 1.79175947
[ 1 6 3 0 0 27] 1.94591015 2.07944154 2.19722458]
(array([ 3, 2, 3, 5, 25, 1]), array([ 1, 6, 3, 0, 0,
27]))
NumPy Summations : tổng
Addition is done between two arguments whereas
[10 20 30 40 50 60]
summation happens over n elements.
Rounding Decimals Phép cộng được thực hiện giữa hai đối số trong khi
Chủ yếu có năm cách làm tròn số thập phân trong tính tổng xảy ra trên n phần tử.
NumPy: truncation, fix ,rounding ,floor, ceil import numpy as np
#Loại bỏ các số thập phân và trả về số thực gần nhất arr1 = np.array([1, 2, 3])
với số 0. Sử dụng các chức năng trunc()và fix(). arr2 = np.array([1, 2, 3])
#around()gia số chức năng làm tròn n chữ số thập newarr = np.add(arr1, arr2)
phân print(newarr)
#Hàm floor () làm tròn số thập phân thành số nguyên newarr = np.sum([arr1, arr2])
thấp hơn gần nhất. print(newarr)
#Hàm ceil () làm tròn số thập phân thành số nguyên #Nếu bạn chỉ định axis=1, NumPy sẽ tính tổng các số
trên gần nhất. trong mỗi mảng.
import numpy as np newarr = np.sum([arr1, arr2], axis=1)
arr = np.trunc([-3.1666, 3.6667]) print(newarr)
print(arr) #Thực hiện tính tổng tích lũy :cursum
arr = np.fix([-3.1666, 3.6667]) newarr = np.cumsum(arr1)
print(arr) print(newarr)
arr = np.around(3.1666, 2) [2 4 6]
print(arr) 12
arr = np.floor([-3.1666, 3.6667]) [6 6]
print(arr) [1 3 6]
arr = np.ceil([-3.1666, 3.6667]) NumPy Products
print(arr)
#Để tìm tích của các phần tử trong một mảng, hãy sử
[-3. 3.]
dụng prod()hàm.
[-3. 3.]
import numpy as np
3.17
arr1 = np.array([1, 2, 3, 4])
[-4. 3.]
arr2 = np.array([5, 6, 7, 8])
[-3. 4.]
x=np.prod(arr1)
print(x)
NumPy Logs : hàm logrit x = np.prod([arr1, arr2])
có cơ số 2, e và 10. print(x)
Tất cả các hàm log sẽ đặt -inf hoặc inf trong các phần #trên một trục : axis=1 (hàng), 0(cột)
tử nếu không thể được tính toán. newarr = np.prod([arr1, arr2], axis=0)
import numpy as np print(newarr)
arr = np.arange(1, 10) #kết quả tích lũy:
#arange(1, 10)hàm trả về một mảng với số nguyên bắt newarr = np.cumprod(arr1)
đầu từ 1 đến 9 print(newarr)
print(np.log2(arr)) 24
6 print(np.log10(arr)) 40320
print(np.log(arr)) # cơ số e [ 5 12 21 32]
[0. 1. 1.5849625 2. 2.32192809 [ 1 2 6 24]
2.5849625 NumPy Differences
Huy init | https://www.facebook.com/huyinit13
import numpy as np x = np.sin(arr)
arr = np.array([10, 15, 25, 5]) print(x)
#Một sự khác biệt rời rạc có nghĩa là trừ hai phần tử #Chuyển đổi độ sang Radian
liên tiếp.(sau trừ trước) arr = np.array([90, 180, 270, 360])
newarr = np.diff(arr) x = np.deg2rad(arr)
print(newarr) print(x)
#Tính toán chênh lệch rời rạc của mảng sau hai lần: #=>Radian sang Độ: x = np.rad2deg(arr)
newarr = np.diff(arr, n=2) #Tìm góc
print(newarr) x = np.arcsin(1.0)
[ 5 10 -20] print(x)
[ 5 -30] arr = np.array([1, -1, 0.1])
NumPy LCM Lowest Common x = np.arcsin(arr)
print(x)
Multiple bcnn #cạnh huyền bằng cách sử dụng định lý pythagoras
trong NumPy.
import numpy as np base = 3
#giữa 2 số perp = 4
num1 = 4 x = np.hypot(base, perp)
num2 = 6 print(x)
x = np.lcm(num1, num2) 1.0
print(x) [1. 0.8660254 0.70710678 0.58778525]
#Tìm LCM trong Mảng [1.57079633 3.14159265 4.71238898 6.28318531]
arr = np.array([3, 6, 9]) 1.5707963267948966
x = np.lcm.reduce(arr) [ 1.57079633 -1.57079633 0.10016742]
print(x) 5.0
12 NumPy Hyperbolic Functions:
18
import numpy as np
NumPy LCM Lowest Common #NumPy cung cấp ufuncs sinh(), cosh()và tanh()đó sẽ
Multiple UCnL có giá trị trong radian
x = np.sinh(np.pi/2)
import numpy as np
print(x)
# UCnL của hai số
arr = np.array([np.pi/2, np.pi/3, np.pi/4, np.pi/5])
num1 = 6
x = np.cosh(arr)
num2= 9
print(x)
x = np.gcd(num1, num2)
#Tìm góc:Tìm các góc từ các giá trị của hypebolic sin,
print(x)
cos, tan. Vd: sinh, cosh và tanh nghịch đảo (arcsinh,
#Để tìm UCnL của tất cả các giá trị trong một mảng,
arccosh, arctanh).
bạn có thể sử dụng reduce()phương pháp này:
#NumPy cung cấp ufuncs arcsinh(), arccosh()và
arr = np.array([20, 8, 32, 36, 16])
arctanh()sản xuất giá trị radian cho tương ứng sinh,
x = np.gcd.reduce(arr)
cây vồ và tanh giá trị nhất định.
print(x)
x = np.arcsinh(1.0)
3
print(x)
4
arr = np.array([0.1, 0.2, 0.5])
NumPy Trigonometric Functions: x = np.arctanh(arr)
Hàm lượng giác print(x)
2.3012989023072947
import numpy as np
[2.50917848 1.60028686 1.32460909 1.20397209]
#NumPy cung cấp ufuncs sin(), cos()và tan()đó sẽ có
7 0.881373587019543
giá trị trong radian
[0.10033535 0.20273255 0.54930614]
x = np.sin(np.pi/2)
NumPy Set Operations
print(x)
Một tập hợp trong toán học là một tập hợp các phần tử
arr = np.array([np.pi/2, np.pi/3, np.pi/4, np.pi/5])
duy nhất.
Huy init | https://www.facebook.com/huyinit13
Các tập hợp được sử dụng cho các phép toán liên
quan đến các phép toán giao nhau, liên hợp và chênh
lệch thường xuyên.
#Tạo set x trong NumPy
import numpy as np
arr = np.array([1, 1, 1, 2, 3, 4, 5, 5, 6, 7])
#sử dụng unique()phương pháp của NumPy để tìm
các phần tử duy nhất từ bất kỳ mảng nào
x = np.unique(arr)
print(x)
#Để tìm các giá trị duy nhất của hai mảng của hai
mảng, hãy sử dụng union1d()phương pháp này.
arr1 = np.array([1, 2, 3, 4])
arr2 = np.array([3, 4, 5, 6])
newarr = np.union1d(arr1, arr2)
print(newarr)
#Để chỉ tìm các giá trị có trong cả hai mảng, hãy sử
dụng intersect1d()
newarr = np.intersect1d(arr1, arr2,
assume_unique=True)
print(newarr)
#Để chỉ tìm các giá trị trong tập đầu tiên KHÔNG có
trong tập 2, hãy sử dụng setdiff1d()
newarr = np.setdiff1d(arr1, arr2,
assume_unique=True)
print(newarr)
#Để chỉ tìm các giá trị KHÔNG có trong CẢ HAI tập
hợp, hãy sử dụng setxor1d()
newarr = np.setxor1d(arr1, arr2,
assume_unique=True)
print(newarr)
[1 2 3 4 5 6 7]
[1 2 3 4 5 6]
[3 4]
[1 2]
[1 2 5 6]

Huy init | https://www.facebook.com/huyinit13

You might also like