我有一个带有零和非零以及形状(10,10)的numpy数组。 我需要在此数组的子部分中添加一个初始值不为零的特定值。
a[2:7,2:7] += 0.5 #But with a condition that a[a!=0]
当前,我以一种相当繁琐的方式进行操作,方法是先制作数组的副本,然后一致地修改第二个数组,然后再复制回第一个数组。
b = a.copy()
b[b!=0] = 1
b[2:7,2:7] *= 0.5
b[b ==1] =0
a += b
有没有更优雅的方法来实现这一目标?
答案 0 :(得分:2)
正如ThomasKühn在评论中正确地写到的那样,它足以创建对该数组子部分的引用并对其进行修改。因此,下面的工作完成了。
b = a[2:7,2:7]
b[b!=0] += 0.5