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

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

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

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

Q&A

1回答

927閲覧

データフレームからarrayに変更(as_array)

daifuku1232

総合スコア12

Python

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

0グッド

0クリップ

投稿2021/01/27 07:31

前提・実現したいこと

https://cpptake.com/archives/525#toc7

このサイトを参考にLSTMで株価予測を試したいと思っているのですが、

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

as_matrix()を使うと以下のようなエラーが表示されます。

Traceback (most recent call last): File "chart1.py", line 51, in <module> (X_train, y_train), (X_test, y_test) = train_test_split(df, test_size = 0.1, n_prev = length_of_sequences) File "chart1.py", line 42, in train_test_split X_train, y_train = _load_data(df.iloc[0:ntrn], n_prev) File "chart1.py", line 31, in _load_data docX.append(data.iloc[i:i+n_prev].as_matrix()) File "/mnt/c/sucripe/.local/lib/python3.8/site-packages/pandas/core/generic.py", line 5462, in __getattr__ return object.__getattribute__(self, name) AttributeError: 'Series' object has no attribute 'as_matrix'

該当のソースコード

def _load_data(data, n_prev = 50): docX, docY = [], [] for i in range(len(data)-n_prev): docX.append(data.iloc[i:i+n_prev].values()) docY.append(data.iloc[i+n_prev].values()) alsX = np.array(docX) alsY = np.array(docY) return alsX, alsY

ソースコード

import matplotlib.pyplot as plt import numpy as np import csv import pandas as pd df = pd.read_csv("stock.csv") #データを反転 df = df.iloc[::-1] df.index = range(len(df)) x = df['finish'] #カラムごとapply x = x.apply(lambda s: float(s.replace(',',''))) # 50日分のデータを1塊とした窓を作る def _load_data(data, n_prev = 50): docX, docY = [], [] for i in range(len(data)-n_prev): docX.append(data.iloc[i:i+n_prev].values()) docY.append(data.iloc[i+n_prev].values()) alsX = np.array(docX) alsY = np.array(docY) return alsX, alsY def train_test_split(df, test_size=0.1, n_prev = 50): ntrn = round(len(df) * (1 - test_size)) ntrn = int(ntrn) X_train, y_train = _load_data(df.iloc[0:ntrn], n_prev) X_test, y_test = _load_data(df.iloc[ntrn:], n_prev) return (X_train, y_train), (X_test, y_test) #株価の平均値で割ることで正規化を実施 df = x / x.mean() length_of_sequences = 50 (X_train, y_train), (X_test, y_test) = train_test_split(df, test_size = 0.1, n_prev = length_of_sequences) #確認 print("X_train = ",X_train.shape) print("y_train = ",y_train.shape) print("X_test = ",X_test.shape) print("y_test = ",y_test.shape)

試したこと

検索するとas_matrixが非推奨であるという記事を見つけたのでvalues()を試したのですが

TypeError: 'numpy.ndarray' object is not callable

となりました。。。

なお、関数をなくすと

X_train = (2196, 50)
y_train = (2196,)
X_test = (199, 50)
y_test = (199,)

となります。

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

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

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

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

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

guest

回答1

0

データフレームのvaluesは属性であってメソッドではありません。

data.iloc[i:i+n_prev].values()

ではなく、

data.iloc[i:i+n_prev].values

と書けば、以下のエラーは出ません。

TypeError: 'numpy.ndarray' object is not callable

そのあと思ったとおりに動くかどうかは別の問題です。

投稿2021/01/27 08:25

ppaul

総合スコア24670

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

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

daifuku1232

2021/01/28 02:05

返答ありがとうございます。 Traceback (most recent call last): File "chart1.py", line 42, in <module> (X_train, y_train), (X_test, y_test) = train_test_split(df, test_size = 0.1, n_prev = length_of_sequences) File "chart1.py", line 34, in train_test_split X_train, y_train = _load_data(df.iloc[0:ntrn], n_prev) File "chart1.py", line 24, in _load_data docY.append(data.iloc[i+n_prev].values) AttributeError: 'numpy.float64' object has no attribute 'values' astypeなどでキャストしたりしたのですが。。。うまくいきません。
ppaul

2021/01/28 03:34

質問者の能力向上のための質問には答えますが、ボランティアの回答者に完全なコードレビューを求めないでください。 バグがなくなるまで質問したいのであれば、有料のサービスをご利用ください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問