【问题标题】:Python:absolute value of each element of a matrix inside a loopPython:循环内矩阵每个元素的绝对值
【发布时间】:2021-01-15 12:30:43
【问题描述】:

在 python 中(我是使用 python 的新手),我通过以下方式在循环内构建了一个矩阵:

A[:,index_i ,index_j] = B[:,index_i ,index_j] - C[:,index_i ,index_j]

在那之后,在同一个循环中,对A 进行了一些计算,但在我需要得到A 之前,每个元素对这些操作都是正数,然后,写这个就可以了,所以每个A[k,index_i,index_j]>=0

A[:,index_i ,index_j]= abs( B[:,index_i ,index_j] - C[:,index_i ,index_j] )

如果可能的话,我想避免更多的循环让每个元素都为正。

谢谢!

【问题讨论】:

标签: python numpy absolute-value


【解决方案1】:

假设这些是 numpy 数组,下面应该可以很好地工作:

A[:, i,j] = np.abs(B[:, i, j]- C[:,i, j])

确实,您甚至可以跳过 i、j 循环,而且非常正确:

A = np.abs(B-C)

以更 Python 和更快的方式获得相同的结果。

【讨论】:

    【解决方案2】:

    内置的abs 函数接受一个标量值。可以使用numpy的函数

    import numpy as np
    result = np.abs(...)
    

    【讨论】:

      猜你喜欢
      • 2021-12-31
      • 1970-01-01
      • 1970-01-01
      • 2015-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-20
      • 2018-02-15
      相关资源
      最近更新 更多