我有一个名为矩阵的二维数组数组.其中的每个矩阵都是维度的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)
Run Code Online (Sandbox Code Playgroud)
您可以将其转换为numpy数组并用于numpy.log计算值.
对于0值,结果将是-Inf.之后,您可以将其转换回列表并替换为-Inf0
或者你可以使用wherenumpy
例:
res = where(arr!= 0, log2(arr), 0)
它将忽略所有零元素.
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |