# Return a new array with the same shape and type as a given array and change the order to C style in Numpy

To return a new array with the same shape and type as a given array, use the numpy.empty_like() method in Python Numpy. It returns the array of uninitialized (arbitrary) data with the same shape and type as prototype. The 1st parameter here is the shape and data-type of prototype(array-like) that define these same attributes of the returned array. We have set the order to 'C' style using the "order" parameter.

The order overrides the memory layout of the result. ‘C’ means C-order, ‘F’ means F-order, ‘A’ means ‘F’ if prototype is Fortran contiguous, ‘C’ otherwise. ‘K’ means match the layout of prototype as closely as possible. The shape overrides the shape of the result. If order=’K’ and the number of dimensions is unchanged, will try to keep order, otherwise, order=’C’ is implied. The overrides parameter overrides the data type of the result.

The subok parameter, if True, then the newly created array will use the sub-class type of prototype, otherwise it will be a base-class array. Defaults to True.

## Steps

At first, import the required library −

import numpy as np

Creating a numpy Three-Dimensional array using the array() method. We have added elements of int type −

arr = np.array([[[5,10],[15,20]],[[25,30],[35,40]],[[50,60],[70,80]]])

Display the array −

print("Array...",arr)


Get the type of the array −

print("Array type...", arr.dtype)

Get the dimensions of the Array −

print("Array Dimensions...", arr.ndim)


To return a new array with the same shape and type as a given array, use the numpy.empty_like() method in Python Numpy. We have set the order to 'C' style using the "order" parameter −

newArr = np.empty_like(arr, order = 'C')
print("New Array..", newArr)

Get the type of the new array −

print("New Array type...", newArr.dtype)


Get the dimensions of the new array −

print("New Array Dimensions...", newArr.ndim)

## Example

import numpy as np

# Creating a numpy Three-Dimensional array using the array() method
# We have added elements of int type
arr = np.array([[[5,10],[15,20]],[[25,30],[35,40]],[[50,60],[70,80]]])

# Display the array
print("Array...",arr)

# Get the type of the array
print("Array type...", arr.dtype)

# Get the dimensions of the Array
print("Array Dimensions...", arr.ndim)

# To return a new array with the same shape and type as a given array, use the numpy.empty_like() method in Python Numpy
# It returns the array of uninitialized (arbitrary) data with the same shape and type as prototype.
# The 1st parameter here is the shape and data-type of prototype(array-like) that define these same attributes of the returned array.
# We have set the order to 'C' style using the "order" parameter.
newArr = np.empty_like(arr, order = 'C')
print("New Array..", newArr)

# Get the type of the new array
print("New Array type...", newArr.dtype)

# Get the dimensions of the new array
print("New Array Dimensions...", newArr.ndim)

## Output

Array...
[[[ 5 10]
[15 20]]

[[25 30]
[35 40]]

[[50 60]
[70 80]]]

Array type...
int64

Array Dimensions...
3

New Array..
[[[ 0 0]
[ 0 0]]

[[140006423023024 140006423022960]
[140006423023088 140006422893488]]

[[140006422893680 140006422893744]
[140006422893808 140006422894384]]]

New Array type...
int64

New Array Dimensions...
3

Updated on: 08-Feb-2022

55 Views 