array shapeが(1,200,1)の3次元のデータshapeからデータが格納されている次元にアクセスする内包表記の書き方がわかりません。
deeplearningなどで特徴量などを編集したい場合にshapeが3次元になるっている場合が多々ありますので、プログラムをまとめたいと考えております。
現在はreshape(),reshape(-1)などで途中途中で次元の削減などを何度か行うことでプログラミングをしているのですが、内包表記などでの対応が可能かどうか勉強しております。
例えば
python
1import numpy as np 2 3a=np.arange(200) 4#わざとshapeを変更しています。 5a=a.reshape(1,200,1) 6 7#aから50個取り出すとすると、以下でアクセス 8b=a[,0:49,] 9#200のデータにアクセスして5をかけてlistとしてcに格納したいとすると 10c=[d[,:,]*5 for d in a] 11SyntaxError: invalid syntax 12コード
(1,200,1)などの3次元のデータの際の内包表記はどのようにアクセスすればよろしいでしょうか?
色々とためしているのですが、d[]の部分の記載方法がわからないです。
初歩的な問題ですが、よろしくお願い致します。
追記
具体的にはRNNを利用した数値予測のプログラム作成の勉強をしております。
必要があれば全てのプログラムを追記いたしますが、RNNでLSTMを使用してmodel.fitした分類器を作成したところまでは省略ています。
python
1#dataはlist形式です。predictにかけるためにreshapeを行います。 2suitei=np.array(data) 3suitei_len=len(suitei) 4#分類器にかけられるshapeが(1,5,1)のため、shapeを変更する。 5suitei=np.array(data).reshape(1,suitei_len,1) 6suitei.shape 7#この時点でarrayは(1,143,1)です。 8 9#このデータの末尾5つを分類器に格納していき50回の次点でのデータを予測したいとすると 10 11yosou_data=[] 12for i in range(50): 13 temp_data=suitei[:,-5:,:] 14 temp_data=np.array(temp_data).reshape(1,5,1) 15#predictを適応するためには、(1,5,1)のarrayである必要。 16 temp_yosou=model.predict(temp_data) 17 print(temp_yosou) 18 print(np.array(temp_yosou).shape) 19 temp_yosou=np.array(temp_yosou).reshape(1,1,1) 20#もとのsuiteiのshapeに戻してhstackで最後尾のデータとして格納。そのデータからまた末尾5個を取り出してpredictを行いたい。 21 yosou_data.append(temp_yosou) 22 temp_suitei=np.hstack((suitei,temp_yosou)) 23 suitei=temp_suitei 24 print(temp_suitei.shape) 25 print(temp_suitei[:,-1,:]) 26 27コード
今のところこのようにreshapeを多数かけて形式を変えながらデータをpredictと格納を繰り返している状態です。
プログラミング初心者で内包表記でもっと簡易な記載方法があればと思い、検討しているのですが。
回答3件
あなたの回答
tips
プレビュー