2016-09-10 7 views
1

誰でも私を助けてくれますか?それは複雑な質問ですが、私はそれを説明しようとします。私は、すべてのデータpythonリストの列を分割

x= [55,55,55,,44,44,44,,33,33,33,] (coordinates) 
z =[10,5,0,10,7,0,10,9,0] (depths) 
v= [20,21,22=,23,24,25,26,27,28] (speed) 

のために(V)の速度と、私が何をしたか

DEPTHS SPEED(55)  SPEED(44)    SPEED(33)  
10  20    23      26 
6  21.5(interp) 24.5(interp)   27.5 (interp) 
0  22    25      28 

をもたらすために二つの値の深さ(Z)を補間する必要があります。

import numpy as np 
    X_list=[55,55,55,44,44,44,33,33,33] 
    Z_list=[10,5,0,10,7,0 10,9,0] 
    V_list=[20,21,22,23,24,25,26,27,28] 
    x = np.linspace(min(Z_list),max(Z_list),num = 3) #(Find min and max values in all list, and put step 
    d=np.interp(x, Z_list, V_list) # interpolation for interesting depths 
    zipped = list(zip(x,d)) 
    print (*zipped, sep="\n") 

そして実際に私はからの情報を得ました最初の座標

DEPTHS SPEED(55) SPEED (44)  SPEED(33)  

    (10  20)   ?    ? 
    (6  21.5)  ?    ? 
    (0  22)   ?    ? 

私は別の座標から他の値を取得する方法を知らない。 リンクと速度と奥行きをどのように調整して列に配置するかはわかりません。

答えて

1

一つの可能​​性として、そのX座標とのタプルのリストに、各X座標をマップする辞書を作成することです:

>>> tupus = [ (1,0,1), (1,13,4), (2,11,2), (2,14,5) ] 
>>> from collections import defaultdict 
>>> tupudict = defaultdict(lambda: []) # default val for a key is empty list 
>>> for tupu in tupus: tupudict[tupu[0]].append(tupu) 
... 
>>> tupudict[1] 
[(1, 0, 1), (1, 13, 4)] 
>>> tupudict[2] 
[(2, 11, 2), (2, 14, 5)] 

その後キーで辞書のキーを処理し、またはのリストに値をダンプタプルのリスト、または何でも。ちょうどリストを分割についてのあなたのコメントに答えを追加する

編集:あなたの入力リスト内のすべてのnについて、uniquedict [n]は今、すべてのnのあなたからのリストである、ということ

>>> from collections import defaultdict 
>>> mylist = [11,11,11,11,12,12,15,15,15,15,15,15,20,20,20] 
>>> uniquedict = defaultdict(lambda: []) 
>>> for n in mylist: uniquedict[n].append(n) 
... 
>>> uniquedict 
defaultdict(<function <lambda> at 0x00000000033092E8>, {20: [20, 20, 20], 11: [11, 11, 11, 11], 12: [12, 12], 15: [15, 15, 15, 15, 15, 15]}) 
>>> uniquedict[11] 
[11, 11, 11, 11] 

注意入力リスト。

+0

これはあまりにも複雑です質問を更新しました=) –

+0

私があなたを理解すれば、私の考えはうまくいくと思います。しかし、おそらく私はあなたがしようとしていることを誤解しています。がんばろう! –

+0

このコードは完全に壊れています。しかし、私は少しdifferntsことが必要です。私はゴルコーディネートを持っており、彼らは公表されています。 55,55,55,44,44,44,33,33,33 各座標には、SPEEDとDEPTHSの列があります。 だから私は最初に座標のリストを張り、それを深さとスピードに結びつけるべきだと思います。 №55深さのようなものが (10,6,0)20,21,22 №44深さは (10,5,0)23,24,25 №33深さは (10,4,0を高速化速度速度)26,27,28 –