Bài 17: Sort, Search & Counting - Numpy Trong Python - VnCoder

vncoder logo
  • Học lập trình
  • |
  • Bài viết
  • |
  • Tin tức
  • |
  • Tuyển dụng
  • |
  • Liên hệ
  • |
  • Đăng ký
  • |
  • Đăng nhập

PHP

Laravel

Android

Java

HTML5

CSS3

NodeJS

VueJS

Swift

Python

Machine Learning

C/C++

Linux/Server

SQL

Javascript

Game

Phân tích thiết kế hệ thống

Servlet/JSP

AI

  1. Trang chủ
  2. AI
  3. Numpy trong Python
  4. Sort, Search & Counting
  • Bài 1: Giới thiệu và thiết lập môi trường
  • Bài 2: Ndarray Object
  • Bài 3: Kiểu dữ liệu
  • Bài 4: Thuộc tính của Mảng
  • Bài 5: Quy trình tạo mảng
  • Bài 6: Mảng từ dữ liệu có sẵn
  • Bài 7: Mảng từ dãy số
  • Bài 8: Index & Slice
  • Bài 9: Advanced Indexing
  • Bài 10: Broadcast
  • Bài 11: Duyệt Mảng
  • Bài 12: Toán tử nhị phân
  • Bài 13: Hàm String
  • Bài 14: Hàm Toán Học
  • Bài 15: Các phép tính toán học
  • Bài 16: Hàm thống kê
  • Bài 17: Sort, Search & Counting
  • Bài 18: Chuyển đổi Byte
  • Bài 19: Copy & View
  • Bài 20: Ma trận
  • Bài 21: Đại số tuyến tính
  • Bài 22: Matplotlib
  • Bài 23: Biểu đồ sử dụng Matplotlib
  • Bài 24: I/O trong numpy

Bài 17: Sort, Search & Counting - Numpy trong Python

Đăng bởi: Admin | Lượt xem: 3539 | Chuyên mục: AI Nhiều chức năng liên quan đến sắp xếp có sẵn trong NumPy. Các hàm sắp xếp này thực hiện các thuật toán sắp xếp khác nhau, mỗi thuật toán được đặc trưng bởi tốc độ thực thi, hiệu suất trong trường hợp xấu nhất, không gian hoạt động cần thiết và tính ổn định của các thuật toán. Bảng sau đây cho thấy sự so sánh của ba thuật toán sắp xếp.
KindSpeedWorst caseWork spaceStable
‘quicksort’1O(n^2)0Không
‘mergesort’2O(n*log(n))~n/2
‘heapsort’3O(n*log(n))0Không

1. numpy.sort() :

Hàm sort () trả về một bản sao đã được sắp xếp của mảng đầu vàonumpy.sort(a, axis, kind, order)Trong đó :
  1. a : Mảng được sắp xếp
  2. axis : Trục dọc theo mảng sẽ được sắp xếp. Nếu không có, mảng sẽ được làm phẳng, sắp xếp trên trục cuối cùng
  3. kind : Mặc định là quicksort
  4. order : Nếu mảng chứa các trường, thứ tự các trường sẽ được sắp xếp
Ví dụ :import numpy as np a = np.array([[3,7],[9,1]]) print 'Our array is:' print a print '\n' print 'Applying sort() function:' print np.sort(a) print '\n' print 'Sort along axis 0:' print np.sort(a, axis = 0) print '\n' # Order parameter in sort function dt = np.dtype([('name', 'S10'),('age', int)]) a = np.array([("raju",21),("anil",25),("ravi", 17), ("amar",27)], dtype = dt) print 'Our array is:' print a print '\n' print 'Order by name:' print np.sort(a, order = 'name')Kết quả :Our array is: [[3 7] [9 1]] Applying sort() function: [[3 7] [1 9]] Sort along axis 0: [[3 1] [9 7]] Our array is: [('raju', 21) ('anil', 25) ('ravi', 17) ('amar', 27)] Order by name: [('amar', 27) ('anil', 25) ('raju', 21) ('ravi', 17)]

2. numpy.argsort() :

Hàm numpy.argsort () thực hiện sắp xếp gián tiếp trên mảng đầu vào, dọc theo trục đã cho và sử dụng kiểu sắp xếp cụ thể để trả về mảng chỉ số dữ liệu. Mảng này được sử dụng để xây dựng mảng đã sắp xếpVí dụ :import numpy as np x = np.array([3, 1, 2]) print 'Our array is:' print x print '\n' print 'Applying argsort() to x:' y = np.argsort(x) print y print '\n' print 'Reconstruct original array in sorted order:' print x[y] print '\n' print 'Reconstruct the original array using loop:' for i in y: print x[i],Kết quả :Our array is: [3 1 2] Applying argsort() to x: [1 2 0] Reconstruct original array in sorted order: [1 2 3] Reconstruct the original array using loop: 1 2 3

3. numpy.lexsort()

hàm thực hiện sắp xếp gián tiếp bằng cách sử dụng một chuỗi khóa. Các khóa có thể được xem như một cột trong bảng tính. Hàm trả về một mảng chỉ số, sử dụng dữ liệu đã sắp xếp để lấy dữ liệu. Lưu ý rằng khóa cuối cùng sẽ là khóa chính Ví dụ :import numpy as np nm = ('raju','anil','ravi','amar') dv = ('f.y.', 's.y.', 's.y.', 'f.y.') ind = np.lexsort((dv,nm)) print 'Applying lexsort() function:' print ind print '\n' print 'Use this index to get sorted data:' print [nm[i] + ", " + dv[i] for i in ind]Kết quả :Applying lexsort() function: [3 1 0 2] Use this index to get sorted data: ['amar, f.y.', 'anil, s.y.', 'raju, f.y.', 'ravi, s.y.']NumPy có một số hàm để tìm kiếm bên trong một mảng. Có sẵn các hàm tìm min, max cũng như các phần tử thỏa mãn một điều kiện nhất định.

4. numpy.argmax() and numpy.argmin()

Hai hàm này trả về chỉ số của các phần tử cực đại và cực tiểu tương ứng dọc theo trục đã cho.Ví dụ :import numpy as np a = np.array([[30,40,70],[80,20,10],[50,90,60]]) print 'Our array is:' print a print '\n' print 'Applying argmax() function:' print np.argmax(a) print '\n' print 'Index of maximum number in flattened array' print a.flatten() print '\n' print 'Array containing indices of maximum along axis 0:' maxindex = np.argmax(a, axis = 0) print maxindex print '\n' print 'Array containing indices of maximum along axis 1:' maxindex = np.argmax(a, axis = 1) print maxindex print '\n' print 'Applying argmin() function:' minindex = np.argmin(a) print minindex print '\n' print 'Flattened array:' print a.flatten()[minindex] print '\n' print 'Flattened array along axis 0:' minindex = np.argmin(a, axis = 0) print minindex print '\n' print 'Flattened array along axis 1:' minindex = np.argmin(a, axis = 1) print minindexKết quả :Our array is: [[30 40 70] [80 20 10] [50 90 60]] Applying argmax() function: 7 Index of maximum number in flattened array [30 40 70 80 20 10 50 90 60] Array containing indices of maximum along axis 0: [1 2 0] Array containing indices of maximum along axis 1: [2 0 1] Applying argmin() function: 5 Flattened array: 10 Flattened array along axis 0: [0 1 1] Flattened array along axis 1: [0 2 0]

5. numpy.nonzero() :

Hàm numpy.nonzero () trả về chỉ số của các phần tử khác 0 trong mảng đầu vào.Ví dụ :import numpy as np a = np.array([[30,40,0],[0,20,10],[50,0,60]]) print 'Our array is:' print a print '\n' print 'Applying nonzero() function:' print np.nonzero (a)Kết quả :Our array is: [[30 40 0] [ 0 20 10] [50 0 60]] Applying nonzero() function: (array([0, 0, 1, 1, 2, 2]), array([0, 1, 1, 2, 0, 2]))

6. numpy.where()

Hàm where () trả về chỉ số của các phần tử trong mảng đầu vào thỏa mãn điều kiện đã cho.Ví dụ :import numpy as np x = np.arange(9.).reshape(3, 3) print 'Our array is:' print x print 'Indices of elements > 3' y = np.where(x > 3) print y print 'Use these indices to get elements satisfying the condition' print x[y]Kết quả :Our array is: [[ 0. 1. 2.] [ 3. 4. 5.] [ 6. 7. 8.]] Indices of elements > 3 (array([1, 1, 2, 2, 2]), array([1, 2, 0, 1, 2])) Use these indices to get elements satisfying the condition [ 4. 5. 6. 7. 8.]

7. numpy.extract()

Hàm extract () trả về các phần tử thỏa mãn bất kỳ điều kiện nào.import numpy as np x = np.arange(9.).reshape(3, 3) print 'Our array is:' print x # define a condition condition = np.mod(x,2) == 0 print 'Element-wise value of condition' print condition print 'Extract elements using condition' print np.extract(condition, x)Kết quả :Our array is: [[ 0. 1. 2.] [ 3. 4. 5.] [ 6. 7. 8.]] Element-wise value of condition [[ True False True] [False True False] [ True False True]] Extract elements using condition [ 0. 2. 4. 6. 8.] Bài tiếp theo: Chuyển đổi Byte >> vncoder logo

Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!

Chia sẻ bài viết
  • Bài 1: Giới thiệu và thiết lập môi trường
  • Bài 2: Ndarray Object
  • Bài 3: Kiểu dữ liệu
  • Bài 4: Thuộc tính của Mảng
  • Bài 5: Quy trình tạo mảng
  • Bài 6: Mảng từ dữ liệu có sẵn
  • Bài 7: Mảng từ dãy số
  • Bài 8: Index & Slice
  • Bài 9: Advanced Indexing
  • Bài 10: Broadcast
  • Bài 11: Duyệt Mảng
  • Bài 12: Toán tử nhị phân
  • Bài 13: Hàm String
  • Bài 14: Hàm Toán Học
  • Bài 15: Các phép tính toán học
  • Bài 16: Hàm thống kê
  • Bài 17: Sort, Search & Counting
  • Bài 18: Chuyển đổi Byte
  • Bài 19: Copy & View
  • Bài 20: Ma trận
  • Bài 21: Đại số tuyến tính
  • Bài 22: Matplotlib
  • Bài 23: Biểu đồ sử dụng Matplotlib
  • Bài 24: I/O trong numpy

Từ khóa » Np.argmax Là Gì