python - Python中二维数组的对数
问题描述
我有一个名为矩阵的二维数组数组。那里的每个矩阵都有维度1000 x 1000
并且由正值组成。现在我想记录所有矩阵中的所有值(0 除外)。
我如何在python中轻松做到这一点?
我有以下代码可以满足我的要求,但是知道 Python 可以更简短:
newMatrices = []
for matrix in matrices:
newMaxtrix = []
for row in matrix:
newRow = []
for value in row:
if value > 0:
newRow.append(np.log(value))
else:
newRow.append(value)
newMaxtrix.append(newRow)
newMatrices.append(newMaxtrix)
解决方案
您可以将其转换为 numpy 数组并用于numpy.log
计算值。
对于 0 值,结果将为-Inf
. 之后,您可以将其转换回列表并将其替换为-Inf
0
或者你可以where
在 numpy中使用
例子:
res = where(arr!= 0, log2(arr), 0)
它将忽略所有零元素。
推荐阅读
- python - python中的双beta-statsmodel中带有虚拟变量的多元线性回归
- clojurescript - lein cljsbuild 失败并出现无法追踪的错误。如何解决 cljsbuild 错误?
- css - Bootstrap DropdownButton 悬停时间过长
- python - 如何在本地运行和测试我的产品?
- c++ - 如何将布尔值设置为 true 或 false 而不是 1 或 0?
- java - rJava jdk不一致
- javascript - 将元素从一个父级移动到另一个父级的反应动画
- sql-server - MSSQL 内连接计数分页
- c++ - 使用数组显式违反 C++ 中的类型系统?
- android - Android Kotlin 用按钮打开链接