此段代码有疑问,不明白后边的三段for循环的详细流程。还望有大神解释一下。
源代码:
import numpy as np
a= np.arange(3,19).reshape((4,4))
# print(a)
# print(a[2]) # 索引行 索引值
# print(a[1][2])
# print(a[1,2])
# print(a[:,2]) # 第二列的所有数字
for row in a: #迭代
print(row)
for column in a.T: #转置迭代
print(column)
for item in a.flat: #迭代器
print(item)
自问自答系列:
将代码改成以下形式,方便分析代码:
import numpy as np
a= np.arange(3,19).reshape((4,4))
for row in a: #迭代
print('row is ',row)
for column in a.T: #转置迭代
print('column is ',column)
for item in a.flat: #迭代器
print('item is ',item)
print(a.flat)
print(*(a.flat))
部分程序运行截图如下:
前两个for循环是逐行遍历,将传回的每行的地址返回并将地址所在的内容打印出来。
通过两段关于flat函数的打印,flat函数是将整个数组变成一个一维数组,并返回地址并打印。