わかさぎのブログ

プログラミング、Atcoderの勉強とか

unzipは*zip

    def data_range_csv_make_kai(self,file_name):
        with open(file_name, encoding="cp932") as f:
            lineral= f.read().splitlines()
            del lineral[0:320]
            #20行削除
            data=
            for line in lineral:
                if line:
                    data.append(line)
                else:
                    break

            kara=
            for line in data:
                element=re.split(",", line)
                kara.append(element)
            
            unzip=list(zip(*kara))
            #unzipは二次元配列。unzip[0]がx、unzip[1]がy
            x_kari= list(unzip[0])
            y_kari= list(unzip[1])
            x_true= ; y_true=
            for i ,j in zip(x_kari,y_kari):
                x_true.append(float(i))
                y_true.append(float(j))
            
            self.x=np.array(x_true)
            self.y=np.array(y_true)

解説

ファイルを読み込んで一行ごとにリストに格納。

if (リストの要素)はリストの要素が空の時はFALSEを返すことを利用して、空白の行が登場するまでデータを格納したリストを作成する。

ここまでで

[ "12,12", "342,32", "34,43"]

みたいな状態になっているからunzipする。(zipの反対)そのあとで、

文字列の数字状態になっているからfloatに変換している。