前提・実現したいこと
Pythonで行列の要素を、エリアごとに合計して
新たに行列として計算したいです。
列数m、行数(m*n)、の行列が手元にあります。
行数をmで割って、新たに列数m、行数nの行列が欲しいのですが、
その際同じエリアにある要素の合計を求めたいです。
元データの名前はsubSといいます。
今現在は理解のために2列、4行のデータを触っています。
(行数は必ず列数の整数倍になります。例に出したのが(9,3),(4,2)ですが、(12,3)などもあり得ます)
python3
1print(subS) 2[[4.0566930769471305 3.7447996916033945] 3 [4.993066255471194 5.408924102596176] 4 [9.46561717954331 8.737865947074592] 5 [7.489599383206791 8.113386153894263]] 6#subS.shape[1]#subSの列数=2 7#subS.shape[0]#subSの行数=4 8for k in range(subS.shape[1]): 9 k=np.split(subS,subS.shape[1],axis=1) 10 for h in range(int(subS.shape[0]/subS.shape[1])): 11 h=np.split(k,subS.shape[0]/subS.shape[1],axis=0) 12
###備考
自分は、上記のコードで、subSを列ごとに分解→さらに行数をm等分→各々和を出して→分解したものをくっつける
というやり方を試みましたが、知識不足かうまくいきません。
そもそも繰り返しの中で変数kに入れた行列が、次のhの繰り返しでうまくいかなかったりなど、、
今提示したやり方でなくとも、何か良い方法はありませんでしょうか。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/21 03:01
2020/10/21 03:03
2020/10/21 03:56
2020/10/21 05:00
2020/10/21 05:51
2020/10/21 14:37