Đếm tần suất từ trong phần tử danh sách trong Python là một nhiệm vụ tương đối phổ biến - đặc biệt là khi tạo dữ liệu phân phối cho biểu đồ
Giả sử chúng tôi có một danh sách
hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
3 - chúng tôi có hai lần xuất hiện trên "b" và một trong "a". Hướng dẫn này sẽ chỉ cho bạn ba cách khác nhau để đếm số lần xuất hiện của từ trong danh sách Python- Sử dụng Pandas và Numpy
- Sử dụng Hàm
4hello 3 goodbye 1 bye 1 howdy 1 hi 1 dtype: int64
- Sử dụng
5 của Mô-đun Bộ sưu tậphello 3 goodbye 1 bye 1 howdy 1 hi 1 dtype: int64
- Sử dụng Vòng lặp và Biến đếm
Trong thực tế, bạn sẽ sử dụng Pandas/Numpy, hàm ________ 04 hoặc một hàm ________ 05 vì chúng khá thuận tiện để sử dụng
Sử dụng Pandas và Numpy
Cách ngắn nhất và dễ dàng nhất để có được số lượng giá trị ở định dạng dễ thao tác [
hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
8] là thông qua Numpy và Pandas. Chúng ta có thể bọc danh sách thành một mảng Numpy, sau đó gọi phương thức hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
9 của thể hiện df = pd.value_counts[np.array[words]]
print['Index:', df.index]
print['Values:', df.values]
0 [cũng có sẵn cho tất cả các thể hiện của hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
8]import numpy as np
import pandas as pd
words = ['hello', 'goodbye', 'howdy', 'hello', 'hello', 'hi', 'bye']
pd.value_counts[np.array[words]]
Điều này dẫn đến một
hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
8 có chứahello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
Bạn có thể truy cập trường
df = pd.value_counts[np.array[words]]
print['Index:', df.index]
print['Values:', df.values]
3 của nó để tự đếm số lượng hoặc df = pd.value_counts[np.array[words]]
print['Index:', df.index]
print['Values:', df.values]
4 để tự lấy các từdf = pd.value_counts[np.array[words]]
print['Index:', df.index]
print['Values:', df.values]
Kết quả này trong
hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
5Sử dụng hàm đếm[]
Cách "tiêu chuẩn" [không có thư viện bên ngoài] để có được số lần xuất hiện từ trong danh sách là sử dụng hàm
hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
4 của đối tượng danh sáchPhương thức
hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
4 là một hàm dựng sẵn lấy một phần tử làm đối số duy nhất của nó và trả về số lần phần tử đó xuất hiện trong danh sáchĐộ phức tạp của hàm
4 là O[n], trong đóhello 3 goodbye 1 bye 1 howdy 1 hi 1 dtype: int64
8 là số thừa số có trong danh sáchdf = pd.value_counts[np.array[words]] print['Index:', df.index] print['Values:', df.values]
Đoạn mã dưới đây sử dụng
hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
4 để lấy số lần xuất hiện của một từ trong danh sáchhello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
1Điều này sẽ cung cấp cho chúng tôi đầu ra giống như trước khi sử dụng các vòng lặp
hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
2Phương thức
hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
4 cung cấp cho chúng ta một cách dễ dàng để lấy số lần xuất hiện từ trong danh sách cho từng từ riêng lẻSử dụng Bộ đếm của Mô-đun Bộ sưu tập
Thể hiện của lớp
hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
5 có thể được sử dụng để đếm các thể hiện của các đối tượng khác. Bằng cách chuyển một danh sách vào hàm tạo của nó, chúng tôi khởi tạo một hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
5 trả về một từ điển gồm tất cả các phần tử và sự xuất hiện của chúng trong một danh sáchTừ đó, để có được sự xuất hiện của một từ, bạn chỉ cần sử dụng từ đó làm chìa khóa cho từ điển
hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
6Kết quả này trong
hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
2Sử dụng Vòng lặp và Biến đếm
Cuối cùng, một cách tiếp cận vũ phu lặp qua từng từ trong danh sách, tăng bộ đếm lên một khi từ được tìm thấy và trả về tổng số từ sẽ hoạt động
Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó
Tất nhiên, phương pháp này trở nên kém hiệu quả hơn khi kích thước danh sách tăng lên, nó chỉ dễ hiểu và dễ thực hiện về mặt khái niệm
Đoạn mã dưới đây sử dụng cách tiếp cận này trong phương thức
hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
53Nếu bạn chạy mã này, bạn sẽ thấy đầu ra này
hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
2Tốt đẹp và dễ dàng
Giải pháp hiệu quả nhất?
Đương nhiên - bạn sẽ tìm kiếm giải pháp hiệu quả nhất nếu bạn đang xử lý khối từ lớn. Hãy so sánh tất cả những thứ này để xem chúng hoạt động như thế nào
Nhiệm vụ có thể được chia thành việc tìm kiếm các lần xuất hiện cho tất cả các từ hoặc một từ duy nhất và chúng tôi sẽ thực hiện các điểm chuẩn cho cả hai, bắt đầu với tất cả các từ
hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
0Kết quả nào trong
hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
0Phương thức
hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
4 cực kỳ nhanh so với các biến thể khác, tuy nhiên, nó không cung cấp cho chúng ta các nhãn liên quan đến số đếm như hai biến thể kia.Nếu bạn cần nhãn - thì
hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
5 hoạt động tốt hơn quy trình gói danh sách không hiệu quả trong một mảng Numpy rồi đếmMặt khác, bạn có thể sử dụng các phương thức của DataFrame để sắp xếp hoặc thao tác khác mà bạn không thể làm khác.
hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
5 cũng có một số phương pháp độc đáoCuối cùng, bạn có thể sử dụng
hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
5 để tạo từ điển và biến từ điển thành một hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
8, để tận dụng tốc độ của hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
5 và tính linh hoạt của hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
8hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
1Nếu bạn không cần nhãn -
hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
4 là cách tốt nhấtNgoài ra, nếu bạn đang tìm kiếm một từ duy nhất
Kết quả nào trong
hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
2Các phương pháp tìm kiếm brute force và
hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
4 vượt trội hơn so với hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
5, chủ yếu là do hello 3
goodbye 1
bye 1
howdy 1
hi 1
dtype: int64
5 vốn đã đếm tất cả các từ thay vì một từPhần kết luận
Trong hướng dẫn này, chúng tôi đã khám phá việc tìm kiếm sự xuất hiện của từ trong danh sách Python, đánh giá hiệu quả của từng giải pháp và cân nhắc xem mỗi giải pháp phù hợp hơn