📅  最后修改于: 2020-06-17 04:38:07             🧑  作者: Mango
numpy.ndarray.flat() : N维数组上的1_D迭代器。它不是Python的内置迭代器对象的子类,否则它是numpy.flatiter实例。
参数:
index: [tuple(int)]要迭代的值的索引
返回:
一维数组迭代器
代码1:2D数组
# Python程序说明ndarray.flat()的工作
import numpy as geek
# 处理2D数组的1D迭代
array = geek.arange(15).reshape(3, 5)
print("2D数组 : \n",array )
# 使用flat():1D迭代器超出范围
print("\n使用数组 : ", array.flat[2:6])
# 使用flat()打印一维重复数组
print("\n数组的一维表示 : \n ->", array.flat[0:15])
输出:
2D数组 :
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]
使用数组 : [2 3 4 5]
数组的一维表示 :
-> [ 0 1 2 ..., 12 13 14]
代码2:更改数组的值
# Python程序说明ndarray.flat()的工作
import numpy as geek
# 处理2D数组的1D迭代
array = geek.arange(15).reshape(3, 5)
print("2D数组 : \n",array )
# 所有元素设置为1
array.flat = 1
print("\n所有值设为1 : \n", array)
array.flat[3:6] = 8
array.flat[8:10] = 9
print("更改范围内的值 : \n", array)
输出:
2D数组 :
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]
所有值设为1 :
[[1 1 1 1 1]
[1 1 1 1 1]
[1 1 1 1 1]]
更改范围内的值 :
[[1 1 1 8 8]
[8 1 1 9 9]
[1 1 1 1 1]]
numpy.flatiter实际上是什么?
对于任何数组x,flatiter迭代器均由x.flat返回。它允许以for循环或通过调用其next方法在N维数组上进行迭代(以行为主)。
代码3:numpy.flatitter()的作用
# Python程序说明ndarray.flat()的工作
import numpy as geek
# 处理2D数组的1D迭代
array = geek.arange(15).reshape(3, 5)
print("2D数组 : \n",array )
print("\nID数组 : \n", array.flat[0:15])
print("\n数组类型,flat() : ", type(array.flat))
for i in array.flat:
print(i, end = ' ')
输出:
2D数组 :
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]
ID数组 :
[ 0 1 2 ..., 12 13 14]
数组类型,flat() :
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14