[英]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.