前提・実現したいこと
緯度・経度(10進表記)を60進表記に変換する方法を模索しております。
10進表記のデータを60進表記(の少し特殊な表記)にするた__めに度分秒のデータに分けることはできます。
しかしながら、例えば60秒を1分に繰り上げる処理に苦難してお__ります。
実現したいのは以下のような処理です。
numpy.adarrayとして以下があったとして、
s = [23 24 60 50 60 52] #秒のデータ
m = [40 35 32 20 59 21] #分のデータ
d = [12 13 12 11 20 22] #度のデータ
#s,m,dは必ず同じデータ数とする。ワープし過ぎというツッコミはなしで。。
①sに60があった場合、0に置換して、mの同位置を+1し、sおよびmを更新する。
上記の例ではs[2],s[5]だけを0に置換し、m[2]およびm[5]を+1する。
よって、
s = [23 24 0 50 0 52]
m = [40 35 33 20 60 22]
d = [12 13 12 11 20 22]
が得られる。
②mに60があった場合、0に置換して、dの同位置を+1し、mおよびdを更新する。
よって、
s = [23 24 0 50 0 52]
m = [40 35 33 20 0 22]
d = [12 13 12 11 21 22]
が得られる。
③最後に、d * 10000 + m * 100 + sの演算結果を返す。
試したこと
①について、"np.where(s == 60)[0]"でsに60が含まれるか否か、含まれるとしたらどの位置かを特定することはできました。また、sに含まれる60を"np.where(s == 60, 0, s)"で0に置換できました。しかし、sの60が含まれた位置と同位置のmの値に+1をして、mを更新する方法がわかりませんでした。ここが分かれば、②は同様の処理と思われますが、これを実現するにはどのような処理が考えられますでしょうか。
上記の例は当方が適当に設定したものですが、実際に取り扱うのは10000データ程度はあります。
お力添えを頂きたく。よろしくお願い申し上げます。
補足情報(FW/ツールのバージョンなど)
使用言語はPython3.7.9です。
Python3に触れて1週間程度です。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/26 14:52