Jan*_*egt 6 python performance numpy matrix
我通过矩阵逐点除法做矩阵但是除数矩阵中有一些零.这导致警告和一些NaN.我希望这些映射到0,我可以这样做:
edge_map = (xy/(x_norm*y_norm))
edge_map[np.isnan(edge_map)] = 0
Run Code Online (Sandbox Code Playgroud)
然而,这有两个问题,首先它仍然发出警告(我不喜欢警告),其次这需要第二次通过矩阵(不确定这是否是不可避免的)并且效率非常重要这部分代码.想法?
这可能是最快的解决方案,但该where函数在预先计算解决方案时确实会触发错误:
import numpy as np
n = 4
xy = np.random.randint(4, size=(n,n)).astype(float)
x_norm = np.random.randint(4, size=(n,n)).astype(float)
y_norm = np.random.randint(4, size=(n,n)).astype(float)
xy_norm = x_norm*y_norm
edge_map = np.where(xy_norm == 0, xy_norm, xy/xy_norm)
print(xy)
print(xy_norm)
print(edge_map)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
722 次 |
| 最近记录: |