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

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

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

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

Q&A

解決済

1回答

1226閲覧

3次元csvファイルの線形補間の方法を教えてください.

退会済みユーザー

退会済みユーザー

総合スコア0

Python

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

0グッド

1クリップ

投稿2019/07/23 06:10

csvファイル

10 208.82466815080167 0.0 704.335656030804, 1 229.16986007939389 -117.76626049267279 704.309694203538, 2 363.880519168295 -60.40595025143996 374.6378360551749, 3 435.75820299614094 -55.54343003074976 -1.954358700084299, 6 186.87209892925782 117.76525802690522 704.5417696122801, 7 181.2626247950882 135.88400167379473 353.37548821301294, 8 -31.79394534815076 169.88709578491589 46.590751924913775, 12 225.1513739704518 7.375565480602631 1007.0219017025645, 13 291.5768035988453 -5.436583392650917 1239.7640435094052, 14 383.8252232005109 -31.058241425584548 1294.4861383378186, 15 401.44020182748807 -41.54041492681429 1417.1052170461194, 17 324.6809855469463 128.89688539841717 1204.3002955091788, 18 272.44318880350744 285.9493351185066 1005.3222974067858, 19 407.44327944207896 274.65760524627524 862.6158306400896, 25 257.5290409325927 -132.7571348024773 1178.7748005122558, 26 207.27317251847006 -299.9469653836307 938.9064960292917, 27 329.41307188467414 -369.36607420377993 782.2777391818806, 20 208.63990942541386 0.0 749.7108646575391, 1 211.58077306414745 -110.8030307127944 745.378112349745, 2 309.0889260418459 -71.06086105333864 387.98203776586405, 3 405.07381314873913 -64.14632738585559 17.79495223981462, 6 205.20211376103728 110.80207919253667 754.3766675977956, 7 181.7805170319484 141.77999204352577 384.28185517582904, 8 -0.06830173137717714 189.71438190957463 62.11243546954927, 12 222.8629268214467 5.956018417202344 1049.1445273993706, 13 291.5235568622278 -7.20729936657176 1281.7645744549366, 14 382.0530070546074 -35.88517507280676 1338.29521367998, 15 400.16200667876944 -49.31705844152952 1461.305361979254, 17 317.8239481725282 118.93394442523982 1252.9836928026357, 18 270.79952708016725 260.0920145473906 1004.1095077738285, 19 406.01896909325575 259.71457054175033 862.4119667369423, 25 263.58648072804607 -126.4141008735038 1214.899313744725, 26 208.09521402415328 -282.96074284221163 984.4689182879854, 27 343.19165951393865 -343.6410257267247 853.9444547380925,

上記のcsvファイルを使用して線形補間は可能でしょうか?

import numpy as np import matplotlib.pyplot as plt from scipy import interpolate x, y = np.loadtxt('h1.csv', skiprows=1, delimiter=',', unpack=True) xs = np.linspace(x.min(), x.max(), 100) # そのまま補完 f = interpolate.Akima1DInterpolator(x, y) ys = f(xs) fig, ax = plt.subplots() ax.scatter(x, y, s=3, color='green') ax.plot(xs, ys, '-') plt.show() # 外れ値除外 q25, q75 = np.percentile(y, [25 ,75]) # 25, 75 パーセンタイル点計算 iqr = q75 - q25 # 4分位範囲 lower = q25 - 1.5 * iqr # 下限 upper = q75 + 1.5 * iqr # 上限 indices = (lower <= y) & (y <= upper) # 残す条件 print('outliers', y[~indices]) # outliers [110. 100.] x_robust, y_robust = x[indices], y[indices] # 外れ値除外 # 外れ値除外して補完 xs_robust = np.linspace(x_robust.min(), x_robust.max(), 100) f = interpolate.interp1d(x_robust, y_robust) ys_robust = f(xs_robust) fig, ax = plt.subplots() ax.scatter(x_robust, y_robust, s=3, color='green') ax.plot(xs_robust, ys_robust, '-') plt.show()
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-10-48a12f7045d8> in <module>() 3 from scipy import interpolate 4 ----> 5 x, y = np.loadtxt('h1.csv', skiprows=1, delimiter=',', unpack=True) 6 xs = np.linspace(x.min(), x.max(), 100) 7 3 frames /usr/local/lib/python3.6/dist-packages/numpy/lib/npyio.py in floatconv(x) 773 if '0x' in x: 774 return float.fromhex(x) --> 775 return float(x) 776 777 typ = dtype.type ValueError: could not convert string to float: '0 2.9005602369518666 0.0 703.1178456180332'

エラーコードを確認したところ,””が入っているのが原因のようなんですが,""はcsvファイルの中に入っていないようなんですが,他の思い当たる原因を教えていただきたいです.よろしくお願いいたします.

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

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

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

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

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

guest

回答1

0

ベストアンサー

string型からfloat型への変換に失敗しているようです。
見ている限りだと、変に空白が開いているのが原因だと思います。split関数を使い分割した後、float型に変換してみて下さい。

'0 2.9005602369518666 0.0 703.1178456180332' '0 2.9005602369518666*0.0*703.1178456180332'//目印あり

投稿2019/07/23 06:41

stdio

総合スコア3307

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問