2
私が減らしたい3D行列があるとします。私は最初の次元を約10個の要素に減らしたいと思っています(10であれば最善ですが、必要ではありません)。私はそのためにこのコードを使用:ndarrayの最初の次元を減らす - 最初と最後の要素を保持する
import numpy
m = numpy.random.rand(37,2,100)
new_m = m[0:-1:int(m.shape[0]/10)]
# new_m.shape = (12, 2, 100)
マイ問題は次の通りである:私は私の元の行列と同じように、この最初の次元の最初と最後の要素をしたいです。あなたはnew_m[-1]
がm[-1]
に等しくないと見ることができるように
new_m[0,:,:2], new_m[-1,:,:2]
#[[ 0.06081972 0.91343839] [ 0.89614534 0.33846807]]
#[[ 0.37289341 0.62491196] [ 0.30603305 0.1442681 ]]
m[0,:,:2], m[-1,:,:2]
#[[ 0.06081972 0.91343839] [ 0.89614534 0.33846807]]
#[[ 0.28143018 0.10626664] [ 0.30334235 0.29616713]]
、と私は彼らがなりたい: しかし、私の現在のコードで、この条件は、最後の要素のために保有していません。
マイ試行/アイデア:
- 私はこのエラーを得たが、私は
new_m
にm[-1]
を追加しようとした:AttributeError: 'numpy.ndarray' object has no attribute 'append'
- 私も
new_m[-1] = m[-1]
をやって思ったが、私は間にスペースを希望ステップは比例する(すなわち、ステップがよく分離される)。
ご意見、ご提案はありますか?
ありがとうございました!私は 'linspace'が引数として' dtype'を取ることができないことを知りませんでした。 v1.9に登場して以来、私の古いnumpyバージョン(v1.8.2)を更新する必要があります。 – Nuageux