はじめに
pythonでタプルを用いた辞書の作成を試みているのですが、エラーが起こり、作成できません。
恐れ入りますが、エラーの改善方法をご教授下さりますと幸いに存じます。
何卒よろしくお願い申し上げます。
実現したいこと
現在、グラフ理論を勉強しており、その過程で以下のような辞書を作成しております。
dicts = {(i_1,j_1):length_1, (i_2,j_2):length_2,..., (i_10,j_10):length_10} i:出発するnode j:到着するnode length:iとjの間の距離
具体的には、添付しておりますtest.csvの数値を代入し、以下のような辞書を作成を目指しております。
dicts = {(2,20):100, (4,18):200,..., (20,2):1000}
試したこと・発生している問題(エラーメッセージ)
該当のソースコードを実行しますと、以下のようなエラーを出力します。
エラーをネットで調べてみたのですが理解できませんでした。
numpyに問題があるようですがどうしてもnumpyを使用したく、他のデータを読み込む方法(pandas等)は試しておりません。
TypeError: unhashable type: 'numpy.ndarray'
該当のソースコード
辞書の作成を目指し、以下のようなプログラムを組みました。
python
1import numpy as np 2 3data = np.loadtxt("test.csv", 4 delimiter=",", 5 skiprows=1, 6 usecols=(1,2,3) 7 ) 8 9keys = [(data[i:i+1,0:1],data[i:i+1,1:2]) for i in range(0,10)] 10values = [data[i:i+1,2:3] for i in range(0,10)] 11 12dicts={} 13for i in keys: 14 for x in values: 15 dicts[i] = x 16 print(dicts)
test.csvは以下の通りです。
> どうしてもnumpyを使用したく
なぜですか?
「できない」ことがわかった上でどんな理由があれば使いたいと思うのでしょうか? そこが伝わらないと質問に意味がないと思います。
ご返信下さりありがとうございます。
言葉足らずで失礼いたしました。
今回作成したい辞書を使用する(別に存在する)最適化問題のプログラムではnumpyのみを使用しており、一貫性を保たせるためでした。
また、もし別に存在する最適化問題のプログラムのnumpyも変更するのであれば、numpy以外を使いたいと思っておりました。
https://ja.stackoverflow.com/questions/82213/
で同じ質問をしているみたいですが、基本的には手間が増えるだけでいいことは何もないです。(むしろマイナスの方が大きいかと)
https://teratail.com/help#posted-otherservice
> 解決した際には必ずteratail及びすべての投稿に解決した旨と、どのように解決したかを記載してください。
は実行しておいた方がいいですよ。
ご教授下さりありがとうございます。
今後の活動の参考にさせていただきます。
回答2件
あなたの回答
tips
プレビュー
