2017-06-27 10 views
0

これら2つのコードはどのように異なっていますか?またはそのような違いは全くありませんか?numpyでの.flatの意義は何ですか?

import numpy as np 
a = np.array([1,2,4,5,5,6]) 
for item in a.flat: 
    print(item) 

OR

import numpy as np 
a = np.array([1,2,4,5,5,6]) 
for i in a: 
    print(i) 

両方が

1 
2 
4 
5 
5 
6 
+0

関連:1,2,4 [(https://stackoverflow.com/questions/41067174/python-numpy-flat-function –

答えて

4

アレイを平坦であろう.flatプロパティを、同じ結果が得られました。 https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.flat.html

np.array([[1], [2], [3], [4], [5]]).flat 
>[1, 2, 3, 4, 5] 

np.array([[[[[1, 2, 3, 4, 5]]]]]).flat 
>[1, 2, 3, 4, 5] 

np.array([1, 2, 3, 4, 5]).flat 
>[1, 2, 3, 4, 5] 

すでに平坦である配列を使用しているため、出力はコードの両方の部分で同じになります。

はこれを試してみてください:

import numpy as np 
a = np.array([[1,2,4],[5,5,6]]) 
for item in a.flat: 
    print(item) 

>1 
>2 
>4 
>5 
>5 
>6 


import numpy as np 
a = np.array([[1,2,4],[5,5,6]]) 
for i in a: 
    print(i) 

>[1 2 4] 
>[5 5 6] 
+2

あなたの '= np.arrayを、 [5,5,6]]) 'は私に'配列を持つ配列要素を設定する 'エラーを与えます。 'np.array([[1]、[2]、[3]、[4、[5]]))'は1次元のオブジェクト配列です。 「フラット」はそれを変えない。 – hpaulj

+0

通常の2次元配列の 'flat'が良く見えます。 :) – hpaulj

+0

どういうわけか、私は私の答えを入力していたように思っていませんでした:(それはすべてまったく私の心をスキップしました! – victor

関連する問題