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:

nnz= len(value)
rows= max (row_index)+1
csr_row=[0]*(rows+1)

for i in range(nnz):
    csr_row[coo_row[i]+1]=csr_row[coo_row[i]+1]+1
for i in range(rows):
    csr_row[i+1]=csr_row[i+1]+csr_row[i]
    print("after: " , csr_row) # this helps the user follow along

Output:

after: [0, 2, 1, 3]
after: [0, 2, 3, 3]
after: [0, 2, 3, 6]

classScipy.sparse.coo_matrix (arg1, shape = none, dtype = none, copy = false) [nguồn]#scipy.sparse.coo_matrix(arg1, shape=None, dtype=None, copy=False)[source]#

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:
  1. Dữ liệu [:] Các mục của ma trận, theo mọi thứ tự

  2. I [:] Các chỉ số hàng của các mục Ma trận

  3. J [:] Các chỉ số cột của các mục Ma trận

Trong đó A[i[k], j[k]] = data[k]. Khi hình dạng không được chỉ định, nó được suy ra từ các mảng chỉ mục

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
  • tạo điều kiện chuyển đổi nhanh giữa các định dạng thưa thớt

  • cho phép các mục trùng lặp (xem ví dụ)

  • Chuyển đổi rất nhanh sang và từ các định dạng CSR/CSC

Nhược điểm của định dạng COO
  • không hỗ trợ trực tiếp:
    • các phép tính toán học

    • cắt lát

Dự định sử dụng
  • 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, 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. Điều này tạo điều kiện xây dựng hiệu quả các ma trận phần tử hữu hạn và tương tự. (Xem ví dụ)

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

shape2-tuple2-tuple

Có được hình dạng của một ma trận.

ndimintint

Số 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ệu

Mảng dữ liệu định dạng COO của ma trận

hàng ngang

Mảng chỉ mục hàng định dạng COO của ma trận

col

Mảng chỉ số cột định dạng COO của ma trận

Phương pháp

__len__()

arcsin()

Vòng cung yếu tố khôn ngoan.

after: [0, 2, 1, 3]
after: [0, 2, 3, 3]
after: [0, 2, 3, 6]
0()

Vòng cung yếu tố khôn ngoan.

after: [0, 2, 1, 3]
after: [0, 2, 3, 3]
after: [0, 2, 3, 6]
1()

Yếu tố khôn ngoan Arctan.

after: [0, 2, 1, 3]
after: [0, 2, 3, 3]
after: [0, 2, 3, 6]
2()

Nguyên tố khôn ngoan Arctanh.

after: [0, 2, 1, 3]
after: [0, 2, 3, 3]
after: [0, 2, 3, 6]
3([axis, out])

Trả về các chỉ số của các phần tử tối đa dọc theo một trục.

after: [0, 2, 1, 3]
after: [0, 2, 3, 3]
after: [0, 2, 3, 6]
4([axis, out])

Trả về các chỉ số của các phần tử tối thiểu dọc theo một trục.

after: [0, 2, 1, 3]
after: [0, 2, 3, 3]
after: [0, 2, 3, 6]
5(format[, copy])

Trả lại ma trận này ở định dạng đã qua.

after: [0, 2, 1, 3]
after: [0, 2, 3, 3]
after: [0, 2, 3, 6]
6()

Ma trận upcast đến định dạng điểm nổi (nếu cần)

after: [0, 2, 1, 3]
after: [0, 2, 3, 3]
after: [0, 2, 3, 6]
7(dtype[, casting, copy])

Đúc các phần tử ma trận thành một loại được chỉ định.

after: [0, 2, 1, 3]
after: [0, 2, 3, 3]
after: [0, 2, 3, 6]
8()

Trân trọng yếu tố.

after: [0, 2, 1, 3]
after: [0, 2, 3, 3]
after: [0, 2, 3, 6]
9([copy])

Liên hợp phức tạp nguyên tố.

>>> # 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)
0([copy])

Liên hợp phức tạp nguyên tố.

>>> # 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)
1()

Trả về một bản sao của ma trận này.

>>> # 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)
2()

Số lượng mục không khác, tương đương với

>>> # 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)
3()

Yếu tố khôn ngoan deg2rad.

>>> # 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)
4([k])

Trả về đường chéo thứ k của ma trận.

>>> # 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)
5(other)

Sản phẩm chấm thông thường

>>> # 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)
6()

Xóa các mục không ra khỏi ma trận

>>> # 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)
7()

Phần tử expm1 khôn ngoan.

>>> # 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)
8()

Sàn yếu tố khôn ngoan.

>>> # 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)
9()

Trả lại sự chuyển đổi Hermiti của ma trận này.

>>> # 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]])
0()

Có được hình dạng của một ma trận.

>>> # 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]])
1(j)

ndimint

>>> # 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]])
2()

Số lượng kích thước (đây luôn là 2)

>>> # 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]])
3()

Số lượng các giá trị được lưu trữ, bao gồm các số không rõ ràng.

>>> # 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]])
4([axis])

Số lượng các giá trị được lưu trữ, bao gồm các số không rõ ràng.

>>> # 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]])
5(i)

dữ liệu

>>> # 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]])
6()

Mảng dữ liệu định dạng COO của ma trận

>>> # 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]])
7([axis, out])

hàng ngang

>>> # 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]])
8(other)

Mảng chỉ mục hàng định dạng COO của ma trận

>>> # 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]])
9([axis, dtype, out])

col

>>> # 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]])
0([axis, out])

Mảng chỉ số cột định dạng COO của ma trận

>>> # 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]])
1(other)

Phương pháp

>>> # 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]])
2(other)

Vòng cung yếu tố khôn ngoan.

>>> # 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]])
3()

Vòng cung yếu tố khôn ngoan.

>>> # 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]])
4(n[, dtype])

Yếu tố khôn ngoan Arctan.

>>> # 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]])
5()

Nguyên tố khôn ngoan Arctanh.

>>> # 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]])
6(self, shape[, order, copy])

Trả về các chỉ số của các phần tử tối đa dọc theo một trục.

>>> # 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]])
7(*shape)

Thay đổi kích thước ma trận tại chỗ theo kích thước được đưa ra bởi shape

>>> # 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]])
9()

Rint yếu tố.

A[i[k], j[k]] = data[k]0(shape)

Xem

>>> # 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]])
6.

A[i[k], j[k]] = data[k]2(values[, k])

Đặt các phần tử chéo hoặc ngoài đường chéo của mảng.

A[i[k], j[k]] = data[k]3()

Dấu hiệu yếu tố khôn ngoan.

A[i[k], j[k]] = data[k]4()

Tội lỗi yếu tố.

A[i[k], j[k]] = data[k]5()

Sinh tố khôn ngoan.

A[i[k], j[k]] = data[k]6()

Yếu tố khôn ngoan sqrt.

A[i[k], j[k]] = data[k]7([axis, dtype, out])

Tổng các phần tử ma trận trên một trục nhất định.

A[i[k], j[k]] = data[k]8()

Loại bỏ các mục Ma trận trùng lặp bằng cách thêm chúng lại với nhau

A[i[k], j[k]] = data[k]9()

Yếu tố rám nắng.

shape0()

Tanh nguyên tố khôn ngoan.

shape1([order, out])

Xem DocString cho shape2.

shape3([blocksize, copy])

Chuyển đổi ma trận này để chặn định dạng hàng thưa thớt.

shape4([copy])

Chuyển đổi ma trận này thành định dạng phối hợp.

shape5([copy])

Chuyển đổi ma trận này thành định dạng cột thưa thớt nén

shape6([copy])

Chuyển đổi ma trận này thành định dạng hàng thưa thớt nén

shape7([order, out])

Trả về một đại diện ma trận dày đặc của ma trận này.

shape8([copy])

Chuyển đổi ma trận này thành định dạng đường chéo thưa thớt.

shape9([copy])

Chuyển đổi ma trận này thành từ điển của định dạng khóa.

nnz0([copy])

Chuyển đổi ma trận này thành danh sách các định dạng danh sách.

nnz1([offset])

Trả về tổng dọc theo các đường chéo của ma trận thưa thớt.

nnz2([axes, copy])

Đảo ngược các kích thước của ma trận thưa thớt.

nnz3()

Phần tử khôn ngoan.

__mul__

Đị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] .