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

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

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

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

Python

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

Q&A

解決済

1回答

6599閲覧

KeyError: (slice(None, None, None), None)がわからない。

iface

総合スコア42

CSV

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

Python

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

0グッド

0クリップ

投稿2021/08/24 10:44

前提・実現したいこと

実現したいことは、心電データをcsvに変換したものをリカレンスプロットすることです。
1行を1つのデータとした7つのデータの集合からなる7 rows x 5500 columnsのcsvファイル(sinden_sample.csv)を使用しました。
実行していく過程で次のようなエラーを吐きました。
プログラムを以下の通りです。
ご教授お願いいたします。

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

0 0 321 1 144 2 399 3 244 4 362 ... ... 5495 1454 5496 1559 5497 1391 5498 1585 5499 1424 [5500 rows x 1 columns] Traceback (most recent call last): File "rp_test.py", line 98, in <module> plt.plot(range(0, 5500),IMF) File "C:\Users\shinya_yamashita\anaconda3\lib\site-packages\matplotlib\pyplot.py", line 2840, in plot return gca().plot( File "C:\Users\shinya_yamashita\anaconda3\lib\site-packages\matplotlib\axes\_axes.py", line 1743, in plot lines = [*self._get_lines(*args, data=data, **kwargs)] File "C:\Users\shinya_yamashita\anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 273, in __call__ yield from self._plot_args(this, kwargs) File "C:\Users\shinya_yamashita\anaconda3\lib\site-packages\matplotlib\axes\_base.py", line 389, in _plot_args y = _check_1d(tup[-1]) File "C:\Users\shinya_yamashita\anaconda3\lib\site-packages\matplotlib\cbook\__init__.py", line 1318, in _check_1d ndim = x[:, None].ndim File "C:\Users\shinya_yamashita\anaconda3\lib\site-packages\pandas\core\frame.py", line 3024, in __getitem__ indexer = self.columns.get_loc(key) File "C:\Users\shinya_yamashita\anaconda3\lib\site-packages\pandas\core\indexes\range.py", line 354, in get_loc raise KeyError(key) KeyError: (slice(None, None, None), None)

該当のソースコード

python

1from __future__ import division 2import numpy as np 3import pylab as plt 4import os 5import pandas as pd 6import sklearn as sk 7from scipy.signal import savgol_filter 8import sklearn.metrics.pairwise 9from torchvision import transforms as transforms 10import time 11#import cv2 #openCVを使うためのmodule 12 13#リカレンスプロット 14def recurrence_plot(s, eps=None, steps=None): 15 if eps==None: eps=0.1 16 if steps==None: steps=1000 17 d = sk.metrics.pairwise.pairwise_distances(s) 18 d = np.floor(d / eps) 19 d[d > steps] = steps 20 #Z = squareform(d) 21 return d 22 23print('getcwd: ', os.getcwd()) #OSのpath 24print('__file__: ', __file__) #プログラムファイルのpath 25 26example = 'shinden7' # train # test #shinden7 27os.chdir(os.path.join('./NJR/', example)) #pathの設定 28#os.chdir(os.path.join('./shinden/mitbih_csv', example)) 29 30#データの保存先のpathを設定 31csv_dir = './images/csv_images/csv_normal/' 32save_dir = './images/rp_images/rp_normal/' 33csv_w_dir = './images/csv_images/window/' 34save_w_dir = './images/rp_images/rp_window/' 35csv_l_dir = './images/csv_images/Laplacian/' 36save_l_dir = './images/rp_images/rp_Lap/' 37 38#file_name = 'trainingdata.csv' 39#file_name = 'testdata.csv' 40#file_name = 'filter_trainingdata.csv' 41#file_name = 'filter_testgdata.csv' 42 43#csvファイル名 44file_name = "shinden_sample.csv" 45#file_name = "shinden_sample2.csv" 46 47 48print('getcwd: ', os.getcwd())#OSのpath 49 50#filter_dir = './images/filter/' 51#save_dir = './images/' 52 53 54 55 56""" 57cols = ["attitude.roll","attitude.pitch","attitude.yaw","gravity.x", 58 "gravity.y","gravity.z","rotationRate.x","rotationRate.y", 59 "rotationRate.z","userAcceleration.x", "userAcceleration.y", 60 "userAcceleration.z"] 61""" 62#x_train = np.zeros((331,32,32)) 63c = 0 64 65#trans = transforms.Compose([transforms.ToPILImage(),transforms.Resize((32,32)),transforms.ToTensor()]) 66 #transforms.Pad(padding=1, padding_mode='constant')) 67 68#norm = lambda X: (X-X.mean())/np.max(np.abs(X-X.mean())) 69 70#1行ごとにデータを取り出す関数 71def pd_read_row(path, idx): 72 return pd.read_csv(path, header=None, skiprows=lambda x: x not in [idx]) 73 74#データ長の設定 ※最後の列がlabelのときは前列まで 75n_start, N = 0,5500 76 77#正規化 78norm = lambda X: (X-X.mean())/X.std() 79 80start = time.time() 81 82#recurrence plot 83 84#for i in range(1): 85 86#1行ごとにデータを変換する 87for i in range(6): #train5984 #test 2176 #range(データ数) 88 print(i) 89 IMF = pd_read_row(file_name,i) # train #データの読み込み 90 #IMF = pd_read_row('mitbih_test.csv',i) # test 91 IMF = IMF.T #行列の転値 92 IMF = IMF[n_start:n_start+N] #データ長に設定 93 print(IMF) 94 F = norm(IMF[n_start:n_start+N]) #正規化 95 #波形データの表示 96 fig = plt.figure() 97 #X = IMF.iloc[:,::-1] 98 plt.plot(range(0, 5500),IMF) 99 plt.xlim([-7, 6000]) #横軸の幅の設定 100 plt.ylim([-40000, 42000]) #縦軸の幅の設定 101 plt.xticks(np.arange(0, 225, 25)) #横軸のメモリの設定 102 #plt.xticks([0, 1000, 2000, 3000, 4000, 5000, 5500]) 103 plt.yticks(np.arange(-40000, 42000, 10000)) #縦軸のメモリの設定 104 #plt.savefig(os.path.join(cvs_dir + '/normal/', example+'_orgRec_test' + str(i))) 105 #plt.savefig(os.path.join("./image/test2/csv/", example+'_orgRec_test' + str(i))) 106 #plt.savefig(os.path.join(cvs_dir + '/filter/', example+'_orgRec_test' + str(i))) 107 plt.close() 108 #print(F) 109 #F[(np.isnan(F)) | (F==float("inf")) | (F==float("-inf"))] = 0.0 110 dat = recurrence_plot(F.values) #リカレンスプロット 111 #画像データの表示 112 fig = plt.figure() 113 plt.imshow(dat) 114 plt.xlim([0, 5500]) 115 plt.ylim([0, 5500]) 116 #plt.xticks(np.arange(0,187, 25)) 117 #plt.yticks(np.arange(0, 187, 25)) 118 plt.xticks([0, 1000, 2000, 3000, 4000, 5000, 5500]) 119 plt.yticks([0, 1000, 2000, 3000, 4000, 5000, 5500]) 120 #plt.savefig(os.path.join("./image/test2/rp/", example+'_orgRec_test' + str(i))) 121 #plt.savefig(os.path.join(save_dir + '/filter/', example+'_orgRec_test' + str(i))) 122 #plt.show() 123 plt.close() 124 #plt.savefig(os.path.join(save_dir, example+'_orgRec_test_10')) 125 126.... 127 128

補足情報(FW/ツールのバージョンなど)

pythonを使用

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

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

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

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

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

jbpb0

2021/08/25 02:18

plt.plot(range(0, 5500),IMF) ↓ 変更 plt.plot(range(0, 5500),np.array(IMF)) で、どうでしょうか?
iface

2021/08/25 16:10

解決しました。 これはどういうことでしょうか?
guest

回答1

0

ベストアンサー

python

1plt.plot(range(0, 5500),IMF)

↓ 変更

python

1plt.plot(range(0, 5500),np.array(IMF))

投稿2021/08/31 11:27

jbpb0

総合スコア7651

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問