csr_matrix与ndarray类型互转

ndarry 转 csr_matrix
>>> import numpy as np
>>> import scipy.sparse

>>> my_matrix = scipy.sparse.csr_matrix((2,2))
>>> my_array = my_matrix.A
>>> type(my_array)
numpy.ndarray
1
2
3
4
5
6
7
csr_matrix 转 ndarray
>>> import numpy as np
>>> from scipy import sparse
>>> A = np.array([[1,2,0],[0,0,3],[1,0,4]])

>>> A
array([[1, 2, 0],
[0, 0, 3],
[1, 0, 4]])

>>> sA = sparse.csr_matrix(A) # Here's the initialization of the sparse matrix.

>>> sA
<3x3 sparse matrix of type '<type 'numpy.int32'>'
with 5 stored elements in Compressed Sparse Row format>

>>> print sA
(0, 0) 1
(0, 1) 2
(1, 2) 3
(2, 0) 1
(2, 2) 4

转载于:https://www.cnblogs.com/hermione1985/p/11064166.html

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TypeError: list indices must be integers or slices, not csr_matrix 是一个常的错误,它表示在使用列表引时,不能使用csr_matrix类型的索引。csr_matrix是一种稀疏矩阵的表示方法,它支持直接使用索引访问元。 要解决这个错误,你可以考虑以下几种方法: 1.保你正在使用正确的索引类型。在使用列表索引时,确保你使用的是整数或切片类型的索引,而不是csr_matrix类型的索引。 2. 如果你想在稀疏矩阵中访问特定的元素,可以使用稀疏矩阵的相应方法或属性来实现。例如,对于scipy库中的csr_matrix对象,你可以使用getrow()或getcol()方法来获取特定的行或列。 3. 如果你需要在稀疏矩阵中进行更复杂的操作,可以考虑将稀疏矩阵换为其他类型的矩阵,例如numpy的ndarray或pandas的DataFrame。这样,你就可以使用常规的索引操作来访问元素。 范例:<<引用:import numpy as np from scipy.sparse import csr_matrix # 创建一个稀疏矩阵 sparse_matrix = csr_matrix([[1, 0, 0], [0, 0, 2], [3, 0, 4]]) # 使用getrow()方法获取特定的行 row = sparse_matrix.getrow(1) print(row) # 输出:(0, 2) 2.0 # 使用ndarray类型的索引访问元素 array = sparse_matrix.toarray() print(array[1, 2]) # 输出:2.0[^1]。引用:import numpy as np from scipy.sparse import csr_matrix # 创建一个稀疏矩阵 sparse_matrix = csr_matrix([[1, 0, 0], [0, 0, 2], [3, 0, 4]]) # 将稀疏矩阵换为ndarray类型 array = sparse_matrix.toarray() # 使用ndarray类型的索引访问元素 print(array[1, 2]) # 输出:2.0[^2]。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值