質問編集履歴

3

タイトルでは質問内容が不明瞭なため、修正いたしました。

2018/07/15 10:47

投稿

yohehe
yohehe

スコア48

test CHANGED
@@ -1 +1 @@
1
- (1,200,1)の次元の際からデータを取り出す内包表記について
1
+ (1,200,1)の次元の際からデータを取り出す手法について。[d[0] for d in data]やlambdaなどでデータを取り出していくことは可能でしょうか。
test CHANGED
File without changes

2

修正依頼に対して具体的な課題点を含めて追記いたしました。

2018/07/15 10:47

投稿

yohehe
yohehe

スコア48

test CHANGED
File without changes
test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
 
16
16
 
17
- a=np.random.randn(200)
17
+ a=np.arange(200)
18
18
 
19
19
  #わざとshapeを変更しています。
20
20
 
@@ -43,3 +43,79 @@
43
43
 
44
44
 
45
45
  初歩的な問題ですが、よろしくお願い致します。
46
+
47
+
48
+
49
+
50
+
51
+ 追記
52
+
53
+
54
+
55
+ 具体的にはRNNを利用した数値予測のプログラム作成の勉強をしております。
56
+
57
+ 必要があれば全てのプログラムを追記いたしますが、RNNでLSTMを使用してmodel.fitした分類器を作成したところまでは省略ています。
58
+
59
+
60
+
61
+ ```python
62
+
63
+ #dataはlist形式です。predictにかけるためにreshapeを行います。
64
+
65
+ suitei=np.array(data)
66
+
67
+ suitei_len=len(suitei)
68
+
69
+ #分類器にかけられるshapeが(1,5,1)のため、shapeを変更する。
70
+
71
+ suitei=np.array(data).reshape(1,suitei_len,1)
72
+
73
+ suitei.shape
74
+
75
+ #この時点でarrayは(1,143,1)です。
76
+
77
+
78
+
79
+ #このデータの末尾5つを分類器に格納していき50回の次点でのデータを予測したいとすると
80
+
81
+
82
+
83
+ yosou_data=[]
84
+
85
+ for i in range(50):
86
+
87
+ temp_data=suitei[:,-5:,:]
88
+
89
+ temp_data=np.array(temp_data).reshape(1,5,1)
90
+
91
+ #predictを適応するためには、(1,5,1)のarrayである必要。
92
+
93
+ temp_yosou=model.predict(temp_data)
94
+
95
+ print(temp_yosou)
96
+
97
+ print(np.array(temp_yosou).shape)
98
+
99
+ temp_yosou=np.array(temp_yosou).reshape(1,1,1)
100
+
101
+ #もとのsuiteiのshapeに戻してhstackで最後尾のデータとして格納。そのデータからまた末尾5個を取り出してpredictを行いたい。
102
+
103
+ yosou_data.append(temp_yosou)
104
+
105
+ temp_suitei=np.hstack((suitei,temp_yosou))
106
+
107
+ suitei=temp_suitei
108
+
109
+ print(temp_suitei.shape)
110
+
111
+ print(temp_suitei[:,-1,:])
112
+
113
+
114
+
115
+ コード
116
+
117
+ ```
118
+
119
+ 今のところこのようにreshapeを多数かけて形式を変えながらデータをpredictと格納を繰り返している状態です。
120
+
121
+ プログラミング初心者で内包表記でもっと簡易な記載方法があればと思い、検討しているのですが。

1

文章修正

2018/07/15 10:34

投稿

yohehe
yohehe

スコア48

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,8 @@
1
1
  array shapeが(1,200,1)の3次元のデータshapeからデータが格納されている次元にアクセスする内包表記の書き方がわかりません。
2
+
3
+ deeplearningなどで特徴量などを編集したい場合にshapeが3次元になるっている場合が多々ありますので、プログラムをまとめたいと考えております。
4
+
5
+ 現在はreshape(),reshape(-1)などで途中途中で次元の削減などを何度か行うことでプログラミングをしているのですが、内包表記などでの対応が可能かどうか勉強しております。
2
6
 
3
7
 
4
8
 
@@ -12,11 +16,13 @@
12
16
 
13
17
  a=np.random.randn(200)
14
18
 
19
+ #わざとshapeを変更しています。
20
+
15
21
  a=a.reshape(1,200,1)
16
22
 
17
23
 
18
24
 
19
- #aから50個取り出すとすると
25
+ #aから50個取り出すとすると、以下でアクセス
20
26
 
21
27
  b=a[,0:49,]
22
28
 
@@ -34,6 +40,6 @@
34
40
 
35
41
  色々とためしているのですが、d[]の部分の記載方法がわからないです。
36
42
 
37
- reshapeして取り出した方がいいのでしょうか。
43
+
38
44
 
39
45
  初歩的な問題ですが、よろしくお願い致します。