数据处理 numpy and pandas——003_numpy索引

此段代码有疑问,不明白后边的三段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循环是逐行遍历,将传回的每行的地址返回并将地址所在的内容打印出来。
数据处理 numpy and pandas——003_numpy索引
通过两段关于flat函数的打印,flat函数是将整个数组变成一个一维数组,并返回地址并打印。
数据处理 numpy and pandas——003_numpy索引