2017-11-01 3 views
-2

私はz1 = 0.75, 0.81, 0.83, 1, 0.92, 0.91検索Z値は、

測定Z1にz2 = 0.745, 0.805, 0.82, 0.87, 0.88, 0.88

点である測定y = 0.15, 0.33, 0.35, 0.5, 0.67, 0.8

ためx = 0.01, 0.05

点について

点を有している点各y値に対してx = 0.01である。

したがって、z1からの第1の値0.75は、xからの0.01およびyからの0.15に等しく、 であり、z1からの第2の値0.81は、xからの0.01およびyからの0.33に等しい。 Z2で

点は各Y値に対するX = 0.05のためのものです。

したがって、z2からの第1の値0.745は、xからの0.05とyからの0.15に等しく、 であり、z2からの第2の値0.805はxから0.05、yから0.33に等しい。

どのように私はXとYに応じて、z値を読み取るためのコードを作成することができますか?

+1

私は従うことが難しいこの質問を見つけることです。テキスト形式では多くのステップがあります。他の視聴者が質問を理解するのに役立つ出力例を見たいと思っています。あなたのコード、あなたのエラー/問題、そしてあなたの望む結果をよりよく説明するために質問を編集してみることができますか?補足として、 'x、y、z1、z2'がリストにありますか? – MattR

+2

あなたは* [どのように私は良い質問をするのですか?](https://stackoverflow.com/help/how-to-ask)*を見て選びたいと、新規ユーザー(すぎ)は、多くの場合に忘れることを考えること* [私の質問に誰かが答えたときにどうすればいいですか?](https://stackoverflow.com/help/someone-answers)*つまり、[SO](https://stackoverflow.com/)へようこそ。 – Kanak

+0

こんにちはMattとKanak、PM 2Ringが質問に答えました。 、辞書(郵便番号(製品の(x、y)=だから、私は、問題は質問 – user8670370

答えて

0

あなたは辞書にそのデータを格納することができます。

from itertools import product 

x = 0.01, 0.05 
y = 0.15, 0.33, 0.35, 0.5, 0.67, 0.8 

z1 = 0.75, 0.81, 0.83, 1, 0.92, 0.91 
z2 = 0.745, 0.805, 0.82, 0.87, 0.88, 0.88 

# Put the z values into a dictionary indexed by (x, y) 
data = dict(zip(product(x, y), z1 + z2)) 

# Retrieve the data 
for xy in product(x, y): 
    print(xy, data[xy]) 

出力

(0.01, 0.15) 0.75 
(0.01, 0.33) 0.81 
(0.01, 0.35) 0.83 
(0.01, 0.5) 1 
(0.01, 0.67) 0.92 
(0.01, 0.8) 0.91 
(0.05, 0.15) 0.745 
(0.05, 0.33) 0.805 
(0.05, 0.35) 0.82 
(0.05, 0.5) 0.87 
(0.05, 0.67) 0.88 
(0.05, 0.8) 0.88 

あなたが実際に補間を行いたい場合は、データ範囲内の任意の(x, y)ペアのz値を計算することができるように、あなたがする必要がありますもう少し作業をしてください。 ;)あなたは)リスト(またはタプルにあなたのzデータを置く


場合は、一緒にチェーンそれらにitertoolsからchain機能を使用することができます。個別のzエントリがリストまたはタプルの場合、これは機能します。

from itertools import product, chain 

x = 0.01, 0.05 
y = 0.15, 0.33, 0.35, 0.5, 0.67, 0.8 

z1 = (0.75, 0.81, 0.83, 1, 0.92, 0.91) 
z2 = [0.745, 0.805, 0.82, 0.87, 0.88, 0.88] 

z = [z1, z2] 
# Put the z values into a dictionary indexed by (x, y) 
data = dict(zip(product(x, y), chain.from_iterable(z))) 

# Retrieve the data 
for xy in product(x, y): 
    print(xy, data[xy]) 

このコードは以前と同じ出力を生成します。

+0

あなたはPM 2Ring驚くべきものであると思ういけない、私はZ3、Z4、 を追加したい場合は、私がデータを変更します非常 – user8670370

+0

をありがとう(x、y)、z1 + z2 + z3 + z4))に、 – user8670370

+0

@ user8670370はい、うまくいくでしょう。それを試してみてください! –