2017-12-04 19 views
-4

Python 2.7とNumpyを使用しています。Pythonはイメージ配列(20,20)を配列(400)に変換します

私はB/Wイメージを配列(20,20)に格納しており、配列(400)に変換したいと考えています。私は多くの画像、つまり配列(x、20,20)を持っていると、これをPythonでどうやって行うことができますか?

ありがとうございます!

編集:ありがとうございます。最初は問題が間違っていたので、この単純なコードを理解することはできませんでした。

+2

「arr.reshape(-1,400)」に変更しますか? – Divakar

+1

これまでに何を試しましたか? –

+0

@Leta 1Dアレイに折り畳まれた20x20アレイは、400の結果をもたらします。値を乗算すると、各ピクセルの色が変更されます。 – NendoTaka

答えて

1

私はnumpy.flatten()はあなたが

>>> a = np.array([[1,2], [3,4]]) 
>>> a.flatten() 
array([1, 2, 3, 4]) 
>>> a.flatten('F') 
array([1, 3, 2, 4]) 

https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.ndarray.flatten.html

+0

いいえ。配列(A、B)がある場合は、配列(A * B)が必要です。あなたが書いたのは配列(A + B)です。 例の配列はarray([3、4、6、8])となります。 – Leta

+0

@Letaあなたの質問や基本的なMLアプリケーションがあれば、それはあまり意味がありません。後者の場合は、ピクセル値を変更する必要はありません。外側のディメンションのみを変更する必要があります。 **この回答は**大丈夫です。しかし、それは常にコピーであることを理解しておくべきです(他の回答に示されているものとは異なることがあります)。 – sascha

+0

@Leta:それは意味をなさない。 – user2357112

1

探しているものをあなたが可能な場合は、配列の1次元のビューを取得するためにnp.ravelを使用することができますだと思います。それ以外の場合はコピーが返されます。 '可能であれば'の定義については、リンクされたドキュメントを参照してください。

a = np.array([[1, 2, 3], [4, 5, 6]]) 
print(a.ravel()) 
# [1 2 3 4 5 6] 
関連する問題