填充2d数组中包含不同值的所有零的每一行的最快方法是什么。
仅包含Zero的行。。
我唯一的想法是循环并使用np.all((检查每一行
array([[2, 6, 9, 7, 0],
[0, 0, 0, 0, 0],
[3, 8, 5, 4, 7]])
array([[2, 6, 9, 7, 0],
[1, 1, 1, 1, 1],
[3, 8, 5, 4, 7]])
如果这足够的话:
a = np.array([[2, 6, 9, 7, 0],
[0, 0, 0, 0, 0],
[3, 8, 5, 4, 7]])
a[~a.any(axis=1)] = 1
注意:我使用~np.any(...)
而不是np.all(a==0)
,因为a
数组大于all
或any
返回的布尔数组。a==0
创建一个2D布尔数组。对any
创建的1D布尔数组求反需要较少的工作和内存。