0

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

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 个形状(总共 4 层)。我正在尝试为dem.shape我拥有的每一层放置一个特定/对应的“zipp”向量位置(在向量中,zipp[i]每个i都是 each 的数组dem)。

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

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

谢谢 :)

4

1 回答 1

0

我不太确定您将结果“作为一个词而不是向量或数组”提供的意思,但假设所有这些数组具有相同的形状,您可以将其减少到几行(也许其他人知道如何在 1) 中执行此操作:

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

如果您只想返回一个zipp大于或等于 0 的布尔数组,您可以在 1 行中执行此操作,如下所示:

bool = np.greater_equal(zipp, 0)
于 2020-06-15T17:31:27.673 回答