【问题标题】:Matlab indexing and replacing in pythonMatlab在python中的索引和替换
【发布时间】:2019-05-18 18:45:49
【问题描述】:

在 matalb 中,我们可以将向量作为 a=[1,3,4] 并使用它来访问和替换另一个向量或矩阵的元素,就像这样。

a=[1,2,4];
b=[1,2,3,4];
b(a)=1

所以 b 将是 [1,1,3,1]

有没有办法在 python 中做到这一点?

我知道我可以做这样的事情:

a=[1,2,4]
b=list(range(1,10))

[b[x] for x in a]

但它不允许我替换这些值,例如。

【问题讨论】:

  • 看看numpy。

标签: python matlab indexing


【解决方案1】:

Numpy 也有类似的功能。但是,请记住,Numpy 索引从 0 开始,而不是从 1:

import numpy as np
a = np.array([1, 2, 4])
b = np.array([1, 2, 3, 4])
b[a - 1] = 1
print(b)
#[1 1 3 1]

【讨论】:

    【解决方案2】:

    你也可以在 python 中使用逻辑索引:

    import numpy as np
    
    a = np.array([1,1,1,0])
    b = np.array([5,6,7,8])
    
    b[a==True]=1
    #[1 1 1 8]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-26
      • 1970-01-01
      • 2014-06-16
      相关资源
      最近更新 更多