问题描述
在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(...)