Open In App

numpy.ndarray.flat() in Python

Last Updated : 28 Mar, 2022
Comments
Improve
Suggest changes
Like Article
Like
Report

The numpy.ndarray.flat() function is used as a 1_D iterator over N-dimensional arrays. 
It is not a subclass of, Python’s built-in iterator object, otherwise it a numpy.flatiter instance. 
Syntax : 

numpy.ndarray.flat()


Parameters : 

index : [tuple(int)] index of the values to iterate


Return : 
 

1-D iteration of array


Code 1 : Working on 2D array 
 

Python
# Python Program illustrating
# working of ndarray.flat()

import numpy as geek 

# Working on 1D iteration of 2D array 
array = geek.arange(15).reshape(3, 5)
print("2D array : \n",array )

# Using flat() : 1D iterator over range
print("\nUsing Array : ", array.flat[2:6])

# Using flat() to Print 1D represented array
print("\n1D representation of array : \n ->", array.flat[0:15])

Output : 
 

2D array : 
 [[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]

Using Array :  [2 3 4 5]

1D representation of array : 
 -> [ 0  1  2 ..., 12 13 14]


Code 2 : Changing the values of array 
 

Python
# Python Program illustrating
# working of ndarray.flat()

import numpy as geek 

# Working on 1D iteration of 2D array 
array = geek.arange(15).reshape(3, 5)
print("2D array : \n",array )

# All elements set to 1
array.flat = 1
print("\nAll Values set to 1 : \n", array)

array.flat[3:6] = 8
array.flat[8:10] = 9
print("Changing values in a range : \n", array)    

Output : 
 

2D array : 
 [[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]

All Values set to 1 : 
 [[1 1 1 1 1]
 [1 1 1 1 1]
 [1 1 1 1 1]]

Changing values in a range : 
 [[1 1 1 8 8]
 [8 1 1 9 9]
 [1 1 1 1 1]]


What actually numpy.flatiter is ? 
A flatiter iterator is returned by x.flat for any array x. It allows iterating(in row-major manner)over N-dimensional arrays, either in a for-loop or by calling its next method.
Code 3 : Role of numpy.flatitter() 
 

Python
# Python Program illustrating
# working of ndarray.flat()

import numpy as geek 

# Working on 1D iteration of 2D array 
array = geek.arange(15).reshape(3, 5)
print("2D array : \n",array )

print("\nID array : \n", array.flat[0:15])         

print("\nType of array,flat() : ", type(array.flat))

for i in array.flat:
    print(i, end = ' ')

Output : 
 

2D array : 
 [[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]

ID array : 
 [ 0  1  2 ..., 12 13 14]

Type of array,flat() :  
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 


References : 
https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.flat.html#numpy.ndarray.flat
Note : 
These codes won't run on online IDE's. So please, run them on your systems to explore the working.

 


Next Article

Similar Reads