python矩阵数值替换_使用Python替换矩阵中的特定值

我认为对您的特定问题最好的答案是使用矩阵类型的对象。在

考虑到矩阵的大部分都是由零填充的,因此稀疏矩阵应该是以内存友好的方式存储这些大容量矩阵的最有效的方法。这应该优于直接使用numpy数组,特别是对于两个维度的非常大的矩阵,如果不是在计算速度方面,在内存方面。在import numpy as np

import scipy #older versions may require `import scipy.sparse`

matrix = np.matrix(np.random.randn(10, 5))

maxes = matrix.argmax(axis=1).A1

# was .A[:,0], slightly faster, but .A1 seems more readable

n_rows = len(matrix) # could do matrix.shape[0], but that's slower

data = np.ones(n_rows)

row = np.arange(n_rows)

sparse_matrix = scipy.sparse.coo_matrix((data, (row, maxes)),

shape=matrix.shape,

dtype=np.int8)

相对于常规矩阵对象,这个稀疏矩阵对象应该是非常轻量级的,这将不必要地跟踪其中的每个零。将其具体化为标准矩阵:

^{pr2}$

退货:matrix([[0, 0, 0, 0, 1],

[0, 0, 1, 0, 0],

[0, 0, 1, 0, 0],

[0, 0, 0, 0, 1],

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值