这两个代码有何不同?或者根本没有这样的差异?
import numpy as np
a = np.array([1,2,4,5,5,6])
for item in a.flat:
print(item)
或
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 :(得分:6)
属性.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]