numpy.asfortranarray() in Python
numpy.asfortranarray() function is used when we want to convert input to a array which is laid out in Fortran order in memory. Input includes scalar, lists, lists of tuples, tuples, tuples of tuples, tuples of lists and ndarrays.
Syntax : numpy.asfortranarray(arr, dtype=None)
Parameters :
arr : [array_like] Input data, in any form that can be converted to an float type array. This includes scalar, lists, lists of tuples, tuples, tuples of tuples, tuples of lists and ndarrays.
dtype : By default, the data-type is inferred from the input data.Return : The input arr in Fortran, or column-major, order.
Code #1 : List to fortranarray
# Python program explaining
# numpy.asfortranarray() function
import numpy as geek
my_list = [1, 3, 5, 7, 9]
print ("Input list : ", my_list)
out_arr = geek.asfortranarray(my_list)
print ("output fortranarray from input list : ", out_arr)
Output :
Input list : [1, 3, 5, 7, 9] output fortranarray from input list : [1 3 5 7 9]
Code #2 : Tuple to fortran array
# Python program explaining
# numpy.asfortranarray() function
import numpy as geek
my_tuple = ([1, 3, 9], [8, 2, 6])
print ("Input tuple : ", my_tuple)
out_arr = geek.asfortranarray(my_tuple, dtype ='int8')
print ("output fortran array from input tuple : ", out_arr)
Output :
Input tuple : ([1, 3, 9], [8, 2, 6]) output fortran array from input tuple : [[1 3 9] [8 2 6]]
Code #3 : Scalar to fortranarray
# Python program explaining
# numpy.asfortranarray() function
import numpy as geek
my_scalar = 15
print ("Input scalar : ", my_scalar)
out_arr = geek.asfortranarray(my_scalar, dtype ='float')
print ("output fortran array from input scalar : ", out_arr)
Output :
Input scalar : 15 output fortran array from input scalar : [ 15.]
Code #4 : array to fortranarray
# Python program explaining
# numpy.asfortranarray() function
import numpy as geek
in_arr = geek.arange(9).reshape(3, 3)
print ("Input array : ", in_arr)
# checking if it is fortranarray
print(in_arr.flags['F_CONTIGUOUS'])
out_arr = geek.asfortranarray(in_arr, dtype ='float')
print ("output array from input array : ", out_arr)
# checking if it has become fortranarray
print(out_arr.flags['F_CONTIGUOUS'])
Output :
Input array : [[0 1 2] [3 4 5] [6 7 8]] False output array from input array : [[ 0. 1. 2.] [ 3. 4. 5.] [ 6. 7. 8.]] True