In [1]:
import numpy as np

In [2]:
a = np.arange(16).reshape(4, 4)
print(a)


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

In [3]:
l = np.split(a, 2)

In [4]:
print(l[0])


[[0 1 2 3]
 [4 5 6 7]]

In [5]:
print(np.shares_memory(a, l[0]))


True

In [6]:
a[0, 0] = 100
print(a)


[[100   1   2   3]
 [  4   5   6   7]
 [  8   9  10  11]
 [ 12  13  14  15]]

In [7]:
print(l[0])


[[100   1   2   3]
 [  4   5   6   7]]

In [8]:
print(np.shares_memory(a, np.vsplit(a, 2)[0]))


True

In [9]:
print(np.shares_memory(a, np.hsplit(a, 2)[0]))


True

In [10]:
print(np.shares_memory(a, np.array_split(a, 3)[0]))


True

In [11]:
a_3d = np.arange(24).reshape(2, 3, 4)
print(np.shares_memory(a_3d, np.dsplit(a_3d, 2)[0]))


True

In [12]:
a = np.arange(16).reshape(4, 4)

In [13]:
l_copy = np.split(a.copy(), 2)

In [14]:
print(np.shares_memory(a, l_copy[0]))


False

In [15]:
a[0, 0] = 100
print(a)


[[100   1   2   3]
 [  4   5   6   7]
 [  8   9  10  11]
 [ 12  13  14  15]]

In [16]:
print(l_copy[0])


[[0 1 2 3]
 [4 5 6 7]]