Vì vậy, tôi có danh sách các từ và tôi cần phải biết tần suất mỗi từ xuất hiện trên mỗi danh sách. Sử dụng ".count (word)" hoạt động, nhưng nó quá chậm (mỗi danh sách có hàng ngàn từ và tôi có hàng ngàn danh sách).Tôi có thể lừa numpy.histogram thành hành vi như numpy.bincount không?
Tôi đã cố gắng tăng tốc mọi thứ với sự khó khăn. Tôi tạo ra một mã số duy nhất cho mỗi từ, vì vậy tôi có thể sử dụng numpy.bincount (vì nó chỉ hoạt động với số nguyên, không phải chuỗi). Nhưng tôi nhận được "ValueError: mảng quá lớn".
Vì vậy, bây giờ tôi đang cố gắng để tinh chỉnh đối số "thùng" của hàm numpy.histogram để làm cho nó trả về số đếm tần số tôi cần (bằng cách nào đó numpy.histogram dường như không gặp rắc rối với mảng lớn). Nhưng cho đến nay không tốt. Bất cứ ai ra khỏi đó sẽ xảy ra để làm điều này trước đây? Thậm chí có thể không? Có một số giải pháp đơn giản hơn mà tôi không thấy?
Mảng lớn của bạn thế nào !? Tôi chỉ sử dụng bincount với một mảng dài 10000000 ints và nó hoạt động tốt. Tôi hết bộ nhớ trước khi tôi gặp lỗi bạn làm. –
Tôi nghĩ rằng vấn đề ở đây liên quan đến hệ thống mã số duy nhất của bạn, không phải kích thước của các mảng ban đầu. np.bincount sẽ tạo một mảng có độ dài bằng 1 + số nguyên lớn nhất trong mảng của bạn, trong đó, nếu bạn đang sử dụng một số loại mã hóa với số lượng lớn ridiculously, có thể gây ra một vấn đề. Tuy nhiên, tôi không có vấn đề gì với np.bincount ([1000000000]). Lược đồ mã số của bạn là gì? – cge
Ah có vẻ như lỗi xảy ra khi bạn đang số nguyên bạn đang cố gắng để bin là rất lớn. Bạn có thể mô phỏng nó bằng 'foo = numpy.random.randint (2 ** 62, size = 1000); numpy.bincount (foo) '. Tôi đoán nó đang cố gắng để tạo ra một mảng lớn unindexable để lưu trữ tất cả các thùng và numpy là nói không (lỗi đó là trong 'multiarray/ctors.c'). Bạn có bao nhiêu từ? –