我有一個二維 numpy 陣列,想要洗掉所有“假”值。應該創建一個不同長度的嵌套陣列。
[['false' 'value1' 'false' 'false' 'value5' 'false' 'false' 'false'
'false' 'false' 'false' 'false' 'false' 'false' 'false' 'false']
['false' 'value1' 'false' 'false' 'false' 'false' 'false' 'false'
'false' 'value10' 'value11' 'false' 'false' 'false' 'false'
'false']]
我想得到:
[['value1' 'value5']
['value1' 'value10' 'value11']]
uj5u.com熱心網友回復:
您應該使用filter()內置函式
>>> an_array = ['false', 'a', 'b', 'c', 'false']
>>> filtered_array = list(filter(lambda a: a != 'false', an_array))
['a', 'b', 'c']
uj5u.com熱心網友回復:
你不能在一個 numpy 陣列中有不同的長度,但你可以把它變成一個二維陣列,然后像這樣對值進行排序:
arr = [['false', 'value1', 'false', 'false', 'value5', 'false', 'false', 'false',
'false', 'false', 'false', 'false', 'false', 'false', 'false', 'false'],
['false', 'value1', 'false', 'false', 'false', 'false', 'false', 'false',
'false', 'value10', 'value11', 'false', 'false', 'false', 'false',
'false']]
List1 = []
List2 = []
for x in arr:
for char in x:
if char != "false" and x == arr[0]:
List1.append(char)
elif char != "false" and x == arr[1]:
List2.append(char)
print(List1)
print(List2)
然后你會得到 2 個不包含錯誤值的串列。
uj5u.com熱心網友回復:
您需要為串列中的每個串列進行迭代,然后應用過濾器功能并使用此輸出附加一個新串列
lists = [['false', 'value1', 'false', 'false', 'value5', 'false', 'false', 'false', 'false', 'false', 'false', 'false', 'false', 'false', 'false', 'false'],
['false', 'value1', 'false', 'false', 'false', 'false', 'false', 'false', 'false', 'value10', 'value11', 'false', 'false', 'false', 'false', 'false']]
filtered_list = []
for x in lists:
filtered_list.append(list(filter(lambda a: a!="false", x)))
filtered_list
在filtered_list var中,您將獲得輸出
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/468195.html
