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

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

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

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

3545閲覧

scipyの時系列データ補間において,csvファイル(4列分のデータ)をまとめて補間したい

msym

総合スコア4

CSV

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

1クリップ

投稿2020/04/21 17:38

前提・実現したいこと

scipyの時系列データ補間において,csvファイル(4列分のデータ)をまとめて補間したいと考えています.
添付画像のような4列分の時系列データを使用し,そこから時間(最初の列)を除いた3列を補間したいと考えています.
イメージ説明

発生している問題・エラーメッセージ

現在作成途中なのですが,2列目のデータは補間できてそうです.
それを利用して3,4列目のデータを補間しようと試みているのですが,なぜか2列目のデータがそのまま使用されてしまいます.
初学者のため簡単なミスも多いかもしれませんが,解決策があればご助言いただければ幸いです.

エラーメッセージはなく,print(zA)で中身を確認してもyAと同じ内容になっています,

該当のソースコード

python3.x(jupyterで作成)

1import matplotlib.pyplot as plt 2import numpy as np 3import pandas as pd 4import csv 5from scipy.interpolate import interp1d 6 7 8#読み込むcsv. 9test = 't.csv' 10 11#csvを読み込んでdata_arrayに格納 12with open(test, mode='r', newline='') as f_in: 13 reader = csv.reader(f_in) 14 data_array = [row for row in reader] 15 16#data_array,配列を定義する 17plot_x = [] #time 18plot_y = [] #data1 19plot_z = [] #data2 20plot_a = [] #data3 21for i in data_array: 22 plot_x.append(float(i[0])) 23 plot_y.append(float(i[1])) 24 plot_z.append(float(i[2])) 25 plot_a.append(float(i[3])) 26# print(plot_z) #ここまではOK? 27 28xs = min(plot_x) 29xm = max(plot_x) 30 31#データ補間で合計データを101個にする 32tt = np.linspace(xs, xm, 101) 33#3d_spline補間 34f = interp1d(plot_x, plot_y, kind="cubic") 35y = f(tt) 36#補間後のx,yをエクセルで使いやすいようにするためにnp.array使用 37yA = np.array([tt, y]) 38yA_t = yA.T 39#print(yA) 40#print(type(yA)) 41#print(yA_t) 42#print(type(yA_t)) 43 44#次は3列目のデータを補間 45ttz = np.linspace(xs, xm, 101) 46#3d_spline補間 47fz = interp1d(plot_x, plot_z, kind="cubic") 48z = f(ttz) 49#補間後のx,zをエクセルで使いやすいようにするためにnp.array使用 50zA = np.array([ttz, z]) 51zA_t = zA.T 52#print(zA) しかし,yAと同じ値が表示されてしまう・・・ 53 54

試したこと

内容の確認,teratailでの類似質問の検索,pythonでのspline補間に関する内容を調べてみました.
しかし,探し方が悪いためか解決の糸口がつかめない状態です.
まだ使い始めたばかりでわからない点も多々あるのですが,教えていただければ幸いです.
何卒よろしくお願いいたします.

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

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

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

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

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

guest

回答1

0

ベストアンサー

patch

1fz = interp1d(plot_x, plot_z, kind="cubic") 2- z = f(ttz) 3+ z = fz(ttz) 4

投稿2020/04/22 02:00

hayataka2049

総合スコア30933

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

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

msym

2020/04/22 02:31

確認していたつもりがzの入れ忘れという初歩的なミスで恥ずかしい限りです. 教えていただきありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問