質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

2111閲覧

python csv 2点間の距離計算について

gomesss

総合スコア8

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/01/02 00:49

2つのcsvファイル(node_zahyo(i).csvとfirelist(i).csv)があり、それぞれ座標を持っております。

この2つのcsvファイルを使って座標間の距離を求めたいと思ているのですが、下記スクリプトを実行したところエラーが出てしまいました。

エラー内容は以下の通りとなります。

operands could not be broadcast together with shapes (0,2) (121,2)

これはどういったエラーになるのでしょうか?
また、エラーを改善するにはどのように変更したらよろしいのでしょうか。

ご教授いただけましたら幸いです。
よろしくお願いいたします。

python

1 2import numpy as np 3import pandas as pd 4 5for i in range(1,1001): 6 7 8 df = pd.read_csv("node_zahyo"+str(i)+".csv",usecols=[1,2]) 9 df_x = df["X"] 10 df_y = df["Y"] 11 12 df2 = pd.read_csv("firelist"+str(i)+".csv") 13 df2_x = df2["x"] 14 df2_y = df2["y"] 15 16 df3 = pd.concat([df,df2],axis=1) 17 18 new_file = "firelists"+str(i)+".csv" 19 20 a = np.array([df_x,df_y]).T 21 b = np.array([df2_x,df2_y]).T 22 23 u = a - b 24 dist = np.linalg.norm(u,axis=1) 25 df3["distance"] = dist 26 df3.to_csv(new_file,index=False)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/01/02 02:54

iがいくつの時に何行目(どの関数)でエラーが出たか書くと答えが得られやすくなります。さらに、データ数を二、三個まで絞った、エラーを再現させるためのダミーデータもあるとより回答が得られやすくなります。
gomesss

2020/01/02 03:10

iが929の時にエラーが出てしまいます。 line 24, in <module> > u = a - b '__main__' を読み込みました プログラム 'python.exe' はコード -1 (0xffffffff) で終了しました。
退会済みユーザー

退会済みユーザー

2020/01/02 03:16

iが929の時の、df_x、 df_y、df2_x、df2_yの数値を教えていただくことはできますか? これらの変数の中身を直接指定すれば、私を含めほかの方もfor文を外して中身を走らせることで同じ条件を再現できそうです。
gomesss

2020/01/02 03:46

申し訳ございません。 根本的な内容で、csvファイルに座標がはいっておりませんでした。。。 再度計算しなおしてみます。 お手数をおかけいたしました。 万が一、できない場合にはこちらにコメントさせていただきます。 よろしくお願いいたします。
guest

回答1

0

単純に長さが揃っていないNumpy配列を加減算しようとしてエラーになっているように見受けられます。
当該のエラーはこの関数の

python

1u = a - b

この部分で発生しているので間違いないでしょうか。そうであれば前述の原因によるエラーかと思います。

それから、

with shapes (0,2)

1つめの配列のshapeに0が含まれているのが気になります。データの読み込みに失敗していたりしませんでしょうか。

投稿2020/01/04 16:06

yu81

総合スコア90

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問