如果条件满足,Python将2D数组连接到新列表

问题描述 投票:0回答:1

假设我有一个数组:

print(arr1.shape)
(188621, 10)

在第n列中(对于本示例,假设为4),我想检查值何时大于阈值t。当第4列的第i个迭代高于阈值t时,我想创建arr1整个行的新列表(包含x个实例)。换句话说,当满足第4列中的条件时,它将从arr1中提取第i行。到目前为止,我有:

arr2 = []

for i in range(0,len(arr1)):
   if arr1[i,4] > t:
      arr2.append(arr1[i,:])

我也尝试过以下方法:

for i in range(0,len(arr1)):
   if arr1[i,4] > t:
      if len(arr2) == 0:
         arr2 = arr1[i,:]
      else:
         arr2 = np.concatenate((arr2,arr1[i,:]))

但是,当满足条件时,两个实例似乎都以x * 10的一维形式增长,而不是(x,10)的2D列表增长。我在这里想念什么?

python append concatenation
1个回答
0
投票

嗯,没那么难。

arr2 = arr1 [np.logical_not(arr1 [:,4]

© www.soinside.com 2019 - 2024. All rights reserved.