は、例えば私のような二つのリストの間の相関係数をチェックしたい:リストの計算から要素を除外する簡単な方法は?
r = np.corrcoef(list25, list26)[0,1]
が、私は計算からリストに-1年代を除外したいです。リストの新しいコピーを作成し、すべての-1などを取り除くために反復するのではなく、これを行う簡単な一行の方法がありますか?
は、例えば私のような二つのリストの間の相関係数をチェックしたい:リストの計算から要素を除外する簡単な方法は?
r = np.corrcoef(list25, list26)[0,1]
が、私は計算からリストに-1年代を除外したいです。リストの新しいコピーを作成し、すべての-1などを取り除くために反復するのではなく、これを行う簡単な一行の方法がありますか?
ライナーソリューションが1つあります。それは新しいリストを作成しています。それはList Comprehensionを使用して行うことができます。新しいリストに古いリストから条件に合致する
new_list = [x for x in old_list if x != -1]
それは基本的にコピーのすべてを。
だから、あなたの例:
r = np.corrcoef([x for x in list25 if x != -1], [x for x in list26 if x != -1])[0,1]
発電
def greater_neg_1(items):
for item in items:
if item>-1:
yield item
使用法:
>>> L = [1,-1,2,3,4,-1,4]
>>> list(greater_neg_1(L))
[1, 2, 3, 4, 4]
か:
r = np.corrcoef(greater_neg_1(list25), greater_neg_1(list26))[0,1]
を0
余分なメモリは必要ありません。
あなたが実際にリストから-1
を削除する場合:
while -1 in list25: list25.remove(-1)
あなたがリストをフィルタリングしたいですか? 'filter(lambda x:x!= -1、values)' – mhoff
またはリストの理解度: '[xはmylistならx!= -1]' –