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

问题描述

在python中(我是python的新手),我在循环中构建了一个矩阵,如下所示:

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

紧接着在同一个循环中,对 A 进行了一些计算,但在我需要获得 A 之前,每个元素对这些操作都是正数,然后,编写此代码将起作用,因此每个 {{ 1}}?

A[k,index_j]>=0

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

谢谢!

解决方法

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

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

事实上,你甚至可以跳过 i,j 循环,直接:

A = np.abs(B-C)

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

,

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

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