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

Posted

技术标签:

【中文标题】Python:循环内矩阵每个元素的绝对值【英文标题】:Python:absolute value of each element of a matrix inside a loop 【发布时间】: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] )

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

谢谢!

【问题讨论】:

欢迎来到 ***!请花时间阅读这篇关于如何How do I ask a good question? 以及如何提供minimal, Complete, and Verifiable example 的帖子并相应地修改您的问题 【参考方案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(...)

【讨论】:

以上是关于Python:循环内矩阵每个元素的绝对值的主要内容,如果未能解决你的问题,请参考以下文章

matlab怎么求矩阵的绝对值

第四十篇 Numpy.array的基本操作——向量及矩阵的运算

luogu2331

[SCOI2005] 最大子矩阵

[SCOI2005]最大子矩阵

用2个变量和1个相关值插值矩阵