Hướng dẫn convert coo to csr python - chuyển đổi coo sang csr python
Tôi đã tìm ra cách thực thi nó trong Python:
Output: Một ma trận thưa thớt ở định dạng tọa độ. Còn được gọi là định dạng ‘IJV, hoặc‘ Triplet Triplet. Điều này có thể được khởi tạo theo nhiều cách: COO_Matrix (D)với một ma trận dày đặc d coo_matrix(S)với một ma trận thưa thớt khác (tương đương với s.tocoo ()) COO_Matrix ((M, N), [DTYPE])Để xây dựng một ma trận trống với hình dạng (m, n) dtype là tùy chọn, mặc định thành dtype = xông d. COO_Matrix ((dữ liệu, (i, j)), [hình dạng = (m, n)]) để xây dựng từ ba mảng:
Trong đó Ghi chú Ma trận thưa thớt có thể được sử dụng trong các hoạt động số học: chúng hỗ trợ bổ sung, trừ, nhân, chia và công suất ma trận. Ưu điểm của định dạng COO
Ví dụ >>> # Constructing an empty matrix >>> from scipy.sparse import coo_matrix >>> coo_matrix((3, 4), dtype=np.int8).toarray() array([[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], dtype=int8) >>> # Constructing a matrix using ijv format >>> row = np.array([0, 3, 1, 0]) >>> col = np.array([0, 3, 1, 2]) >>> data = np.array([4, 5, 7, 9]) >>> coo_matrix((data, (row, col)), shape=(4, 4)).toarray() array([[4, 0, 9, 0], [0, 7, 0, 0], [0, 0, 0, 0], [0, 0, 0, 5]]) >>> # Constructing a matrix with duplicate indices >>> row = np.array([0, 0, 1, 3, 1, 0, 0]) >>> col = np.array([0, 2, 1, 3, 1, 0, 0]) >>> data = np.array([1, 1, 1, 1, 1, 1, 1]) >>> coo = coo_matrix((data, (row, col)), shape=(4, 4)) >>> # Duplicate indices are maintained until implicitly or explicitly summed >>> np.max(coo.data) 1 >>> coo.toarray() array([[3, 0, 1, 0], [0, 2, 0, 0], [0, 0, 0, 0], [0, 0, 0, 1]])Thuộc tínhDtypedTypedtypedtype Kiểu dữ liệu của ma trận shape 2-tuple2-tupleCó được hình dạng của một ma trận. ndimintintSố lượng kích thước (đây luôn là 2) nnz Số lượng các giá trị được lưu trữ, bao gồm các số không rõ ràng. dữ liệuMảng dữ liệu định dạng COO của ma trận hàng ngangMảng chỉ mục hàng định dạng COO của ma trận colMảng chỉ số cột định dạng COO của ma trận Phương pháp
Định dạng COO trong Python là gì?COO là một định dạng nhanh để xây dựng ma trận thưa thớt.Khi một ma trận đã được xây dựng, hãy chuyển đổi thành định dạng CSR hoặc CSC cho các hoạt động vector số học và ma trận nhanh.Theo mặc định khi chuyển đổi sang định dạng CSR hoặc CSC, các mục trùng lặp (i, j) sẽ được tổng hợp lại với nhau.a fast format for constructing sparse matrices. Once a matrix has been constructed, convert to CSR or CSC format for fast arithmetic and matrix vector operations. By default when converting to CSR or CSC format, duplicate (i,j) entries will be summed together.
Tại sao CSR nhanh hơn COO?Có, CSR về mặt lý thuyết nên nhanh hơn COO cho phép nhân vector ma trận;Điều này là do kích thước lưu trữ ở định dạng CSR là O (2NNZ + N) so với O (3NNZs) và phép nhân vectơ ma trận thưa thớt trong nhiều trường hợp bị ràng buộc bộ nhớ.the storage size in CSR format is O(2nnz + n) vs O(3nnzs) and the sparse matrix vector multiplication is in many cases memory bound.
CSR_Matrix là gì?csr_matrix ((m, n), [dtype]) để xây dựng một ma trận trống với hình dạng (m, n) dtype là tùy chọn, mặc định thành dtype = 'd'.csr_matrix ((data, (row_ind, col_ind)), [spape = (m, n)]) trong đó dữ liệu, row_ind và col_ind thỏa mãn mối quan hệ a [row_ind [k], col_ind [k]] = data [k].to construct an empty matrix with shape (M, N) dtype is optional, defaulting to dtype='d'. csr_matrix((data, (row_ind, col_ind)), [shape=(M, N)]) where data , row_ind and col_ind satisfy the relationship a[row_ind[k], col_ind[k]] = data[k] . |