【问题标题】:Python concatenate 2D array to new list if condition is met如果满足条件,Python将二维数组连接到新列表
【发布时间】:2020-06-11 16:40:13
【问题描述】:

假设我有一个数组:

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) 的二维列表。我在这里错过了什么?

【问题讨论】:

    标签: python append concatenation


    【解决方案1】:

    嗯,没那么难。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-22
      • 1970-01-01
      相关资源
      最近更新 更多