簡體   English   中英

如果滿足條件,Python將二維數組連接到新列表

[英]Python concatenate 2D array to new list if condition is met

假設我有一個數組:

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) 的二維列表。 我在這里缺少什么?

嗯,沒那么難。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM