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

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

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

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

Q&A

解決済

1回答

30541閲覧

特徴量データ設定の際のnp.arrayとlistの扱い 決定木の可視化の際のエラー'numpy.ndarray' object has no attribute 'columns'

yohehe

総合スコア48

Python 3.x

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

0グッド

1クリップ

投稿2018/06/14 16:09

編集2018/06/14 16:33

pythonにおけるarrayとリストの違いについてどうしても曖昧なままです。
listとnp.arrayの違いについて調べてみるとlistとnp.arrayではメモリ効率が異なるなどのlistのデメリットがあることなどは勉強しています。
しかしながらどうしても違いが曖昧なまま理解しているためか
'numpy.ndarray' object has no attribute 'columns'

'list' object has no attribute 'shape'
などのエラーを度々起こしてしまいます。
エラーの都度
data=np.array(df)などとarrayにその都度適宜変換しているのですが問題ないのでしょうか?

現在決定木を利用したプログラムの可視化を勉強しているのですが

sampleとfeatures用のXデータを作成の際に
X=[]
for i in range(n):
onedata=np.load("filename.npy")
data.append(onedata)
でlistとしてデータを格納し、Xとtargetdataのyを作成し、
clf.fit(X,y)で決定木のプログラムを作成しています。
predictまでは問題ないのですが、
決定木の可視化をおこなう際に
dot_data = StringIO()
tree.export_graphviz(clf, out_file=dot_data,feature_names=X.columns, max_depth=3)
graph = pydotplus.graph_from_dot_data(dot_data.getvalue())
graph.write_pdf("graph.pdf")
Image(graph.create_png())
と記載しているのですが、
'numpy.ndarray' object has no attribute 'columns'と表示されてしまいます。

そもそも特徴量とサンプルのためのXデータを作成する際はlistで格納していくことは望ましくないのでしょうか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

listnumpy.array.columnsはありません。
それはpandas.DataFrameですね。


numpyを使わないとかでなければ、常にnp.arrayになるようにコードを工夫するとエラーを減らすことができます。

たとえば、

python

1l = [] 2for v in range(10): 3 l.append(v)

はnumpyだと、

python

1import numpy as np 2l = np.zeros(10, dtype=int) # or dtype=float 3for i, v in enumerate(range(10)): 4 l[i] = v

投稿2018/06/14 21:05

mkgrei

総合スコア8560

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

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

yohehe

2018/06/15 02:36

ありがとうございます。リストで作成するのではなく、np.arrayを作成し、そこに追加していくという形だとエラーが少なくなるのですね。勉強になります。 色々とpandasとnumpyなどが混同してしまってたみたいです。pandasについて勉強してみます。ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問