【发布时间】:2015-06-14 08:23:29
【问题描述】:
我有一个二维数组,如果值大于 0,我想做一个操作(例如 x+1)。 在普通的python中是这样的:
a = [[2,5], [4,0], [0,2]]
for x in range(3):
for y in range(2):
if a[x][y] > 0:
a[x][y] = a[x][y] + 1
a 的结果是 [[3, 6], [5, 0], [0, 3]]。这就是我想要的。
现在我想阻止嵌套循环并尝试使用 numpy 类似的东西:
a = np.array([[2,5], [4,0], [0,2]])
mask = (a > 0)
a[mask] + 1
结果现在是一维数组[3 6 5 3]的形状。我怎样才能做这个操作并且不会像之前的普通 python 示例那样丢失维度?
【问题讨论】:
标签: python arrays numpy vectorization