##環境
Python 3.10.7
OS:windows11
前提
numpyで3次元配列を用意し、その配列に対して任意の次元方向(axis)に対して最終列を追加し、その最終列は任意の数値で埋めたいです。
任意の数値を最終列ではなく、途中の列に挿入するパターンはinsertを用いることで実現することができました。
※(下記のコード "指定の次元で任意の数値で挿入するパターンはうまくいきました。" を参考願います。)
しかし、insertですと、任意の次元の最終列にどうしても追加することができません。
ネット情報を検索するとappendを使えば実現できるのかな?と思いましたが実際に試してみましたがエラーが生じます。
なるべく簡単な記述で実現したいです。
実現したいこと
numpyの3次元配列で任意の次元の最終列を追加して、その最終列は任意の数値で埋めたいです。
作成したい行列の例
python
1import numpy as np 2data=np.arange(24).reshape(4,3,2) 3print('元の行列') 4print(data) 5 6#元の行列 7#[[[ 0 1] 8# [ 2 3] 9# [ 4 5]] 10# 11# [[ 6 7] 12# [ 8 9] 13# [10 11]] 14# 15# [[12 13] 16# [14 15] 17# [16 17]] 18# 19# [[18 19] 20# [20 21] 21# [22 23]]] 22# 23#作成したい行列 24#[[[ 0 1] 25# [ 2 3] 26# [ 4 5] 27# [100 100]] 28# 29# 30# [[ 6 7] 31# [ 8 9] 32# [ 10 11] 33# [100 100]] 34# 35# [[ 12 13] 36# [ 14 15] 37# [ 16 17] 38# [100 100]] 39# 40# [[ 18 19] 41# [ 20 21] 42# [ 22 23] 43# [100 100]]]
試したこと
python
1import numpy as np 2data=np.arange(24).reshape(4,3,2) 3print(np.append(data,100,axis=1))
発生している問題・エラーメッセージ
例外が発生しました: ValueError all the input arrays must have same number of dimensions, but the array at index 0 has 3 dimension(s) and the array at index 1 has 0 dimension(s)
指定の次元で任意の数値で挿入するパターンはうまくいきました。
python
1import numpy as py 2data=np.arange(24).reshape(4,3,2) 3 4print('任意の数値「100」で挿入後の行列') 5print(np.insert(data,1,100,axis=1)) 6 7#任意の数値「100」で挿入後の行列 8#[[[ 0 1] 9# [100 100] 10# [ 2 3] 11# [ 4 5]] 12# 13# [[ 6 7] 14# [100 100] 15# [ 8 9] 16# [ 10 11]] 17# 18# [[ 12 13] 19# [100 100] 20# [ 14 15] 21# [ 16 17]] 22# 23# [[ 18 19] 24# [100 100] 25# [ 20 21] 26# [ 22 23]]]
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/10/23 03:53