私はピクセルごとに2つのチャンネルを持つ56の画像の配列を持っています。従って、その形状は(1200,800,52,2)である。私はKNeighborsClassifierを行う必要があり、すべての52の画像のすべてのピクセルが1つの列に収まるように平坦化する必要があります。だから形(1200 * 800 * 52,2)。分類が実行された後、私は正しい順序でそれらの形状を変えることができることを知る必要があります。数の少ない配列の形状を整えたり変形したりしますか?
最初の手順として、私は同じ配列を変形して変形し、元の配列と同じにしようとしています。ここで
が動作するようには思えない私が試したものです:
In [55]: Y.shape
Out[55]: (1200, 800, 2, 52)
In [56]: k = np.reshape(Y,(1200*800*52,2))
In [57]: k.shape
Out[57]: (49920000, 2)
In [58]: l = np.reshape(k,(1200,800,52,2))
In [59]: l.shape
Out[59]: (1200, 800, 52, 2)
In [60]: assert l == Y
/Users/alex/anaconda2/bin/ipython:1: DeprecationWarning: elementwise == comparison failed; this will raise an error in the future.
#!/bin/bash /Users/alex/anaconda2/bin/python.app
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
<ipython-input-60-9faf5e8e20ba> in <module>()
編集:私はKとYの形でエラーをしました。ここで修正されたバージョンは、まだあなたのエラーは、あなたが(最後の軸が52であるY
の元の寸法に従わないことreshape
を使用するライン56、であるよう
In [78]: Y.shape
Out[78]: (1200, 800, 2, 52)
In [79]: k = np.reshape(Y,(1200*800*52,2))
In [80]: k.shape
Out[80]: (49920000, 2)
In [81]: l = np.reshape(k,(1200,800,2,52))
In [82]: assert Y == l
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-82-6f6815930213> in <module>()
----> 1 assert Y == l
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
'Y'は'(1200,800,2,52) 'の形をしていますが、'(1200,800,52,2) 'の形をしています。 – unutbu
oops。私は質問とコードを更新しました。別のエラーが発生しますが、まだ再構成は機能していないようです。 – BigBoy1337