NumPy ndarray.base
The numpy.ndarray.base
attribute returns the base object from which the array memory is derived.
If an array is a view of another array, base
points to the original array; otherwise, it is None
.
Syntax
ndarray.base
Return Value
Returns the base object from which memory is shared if the array is a view. If the array owns its data, it returns None
.
Examples
1. Checking the Base Object of an Independent Array
When an array owns its data, the base
attribute returns None
.
import numpy as np
# Creating an independent array
arr = np.array([1, 2, 3, 4, 5])
# Checking the base attribute
print(arr.base)
Output:
None
Since arr
is an independent array and owns its memory, base
returns None
.
2. Checking the Base Object of a View
If an array is created as a view of another array, base
points to the original array.
import numpy as np
# Creating an original array
arr = np.array([10, 20, 30, 40, 50])
# Creating a view of the original array
view_arr = arr.view()
# Checking the base attribute of the view
print(view_arr.base)
Output:
[10 20 30 40 50]
Since view_arr
is a view of arr
, its base
attribute points to arr
.
3. Checking the Base Object of a Sliced Array
A sliced array shares memory with the original array, making it a view with a non-None
base
.
import numpy as np
# Creating an original array
arr = np.array([5, 10, 15, 20, 25])
# Creating a sliced array (view)
sliced_arr = arr[1:4]
# Checking the base attribute of the sliced array
print(sliced_arr.base)
Output:
[ 5 10 15 20 25]
Since sliced_arr
is a view of arr
, its base
attribute points to arr
, showing that it shares memory with the original array.
4. Checking the Base Object of a Copy
Unlike views, a copy of an array owns its memory, so its base
is None
.
import numpy as np
# Creating an original array
arr = np.array([100, 200, 300, 400])
# Creating a copy of the array
copy_arr = arr.copy()
# Checking the base attribute of the copied array
print(copy_arr.base)
Output:
None
Since copy_arr
is a separate copy of arr
and does not share memory, its base
returns None
.