Python:absolute 循环内矩阵的每个元素的值

Python:absolute value of each element of a matrix inside a loop

在 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] )

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

谢谢!

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

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

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

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

事实上,您甚至可以跳过 i, j 循环并简单地对:

A = np.abs(B-C)

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