将不同的数组转换为循环

Transforming different arrays into a loop

我想知道是否有可能将这些下一个过程转换成一个循环,以便我可以为此使用一个词(而不是作为向量):

Data0 = np.zeros(dem0.shape, dtype=np.int32)
Data0[zipp[0] >= 0 ] = 1
Data1 = np.zeros(dem1.shape, dtype=np.int32)
Data1[zipp[1] >= 0 ] = 1
Data2 = np.zeros(dem2.shape, dtype=np.int32)
Data2[zipp[2] >= 0 ] = 1
Data3 = np.zeros(dem3.shape, dtype=np.int32)
Data3[zipp[3] >= 0 ] = 1

如您所见,每层有 4 个形状(总共四层)。我正在尝试为我拥有的每一层的每个 dem.shape 放置一个 specific/corresponding "zipp" 矢量位置(在矢量 zipp[i] 中,每个 i 是每个 i 的数组=14=]).

我想要它做的是用数字 1 替换每个 layer/shape/dem 中包含在 zipp[i] 中的数组中大于或等于零的值。

然而,因此,我必须将其作为一个词而不是一个向量或数组来传递,所以我一直在考虑一个循环,但还没有得到足够的阐明。

谢谢:)

我不太清楚你所说的结果 "as a word not a vector or array" 是什么意思,但假设所有这些数组都具有相同的形状,你可以将其减少到几行(也许其他人知道如何在 1):

中完成
data = np.zeros_like(zipp, dtype=np.int32)
data[zipp >= 0] = 1

如果你只想 return 一个布尔数组,其中 zipp 大于或等于 0,你可以在 1 行中这样做:

bool = np.greater_equal(zipp, 0)