import numpy as np
y = np.array(((1,2,3),(4,5,6),(7,8,9)))
OUTPUT:
print(y.flatten())
[1 2 3 4 5 6 7 8 9]
print(y.ravel())
[1 2 3 4 5 6 7 8 9]
どちらの関数も同じリストを返します。次に、同じ仕事を実行する2つの異なる機能の必要性は何ですか.
import numpy as np
y = np.array(((1,2,3),(4,5,6),(7,8,9)))
OUTPUT:
print(y.flatten())
[1 2 3 4 5 6 7 8 9]
print(y.ravel())
[1 2 3 4 5 6 7 8 9]
どちらの関数も同じリストを返します。次に、同じ仕事を実行する2つの異なる機能の必要性は何ですか.
現在の API は次のとおりです。
flatten
常にコピーを返します。ravel
可能な限り元の配列のビューを返します。これは印刷出力には表示されませんが、ravel によって返された配列を変更すると、元の配列のエントリが変更される場合があります。flatten から返された配列のエントリを変更すると、これは決して起こりません。メモリがコピーされないため、ravel は多くの場合高速になりますが、返される配列の変更についてはより注意する必要があります。reshape((-1,))
常に連続した配列を取得するとは限らない場合でも、配列のストライドが許可するたびにビューを取得します。