In [1]:
import numpy as np

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


[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]

In [3]:
print(np.ravel(a))


[ 0  1  2  3  4  5  6  7  8  9 10 11]

In [4]:
print(type(np.ravel(a)))


<class 'numpy.ndarray'>

In [5]:
print(np.ravel([[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]]))


[ 0  1  2  3  4  5  6  7  8  9 10 11]

In [6]:
print(type(np.ravel([[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]])))


<class 'numpy.ndarray'>

In [7]:
print(np.ravel([[0, 1, 2, 3], [4, 5, 6, 7], [8, 9]]))


[list([0, 1, 2, 3]) list([4, 5, 6, 7]) list([8, 9])]

In [8]:
print(type(np.ravel([[0, 1, 2, 3], [4, 5, 6, 7], [8, 9]])))


<class 'numpy.ndarray'>

In [9]:
print(a.ravel())


[ 0  1  2  3  4  5  6  7  8  9 10 11]

In [10]:
print(a.flatten())


[ 0  1  2  3  4  5  6  7  8  9 10 11]

In [11]:
print(a.reshape(-1))


[ 0  1  2  3  4  5  6  7  8  9 10 11]

In [12]:
print(np.reshape(a, -1))


[ 0  1  2  3  4  5  6  7  8  9 10 11]

In [13]:
print(np.reshape([[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]], -1))


[ 0  1  2  3  4  5  6  7  8  9 10 11]

In [14]:
print(np.reshape([[0, 1, 2, 3], [4, 5, 6, 7], [8, 9]], -1))


[list([0, 1, 2, 3]) list([4, 5, 6, 7]) list([8, 9])]

In [15]:
print(np.shares_memory(a, a.ravel()))


True

In [16]:
print(np.shares_memory(a, np.ravel(a)))


True

In [17]:
print(np.shares_memory(a, a.flatten()))


False

In [18]:
print(np.shares_memory(a, a.reshape(-1)))


True

In [19]:
print(np.shares_memory(a, np.reshape(a, -1)))


True

In [20]:
a_ravel = a.ravel()
print(a_ravel)


[ 0  1  2  3  4  5  6  7  8  9 10 11]

In [21]:
a_ravel[0] = 100
print(a_ravel)


[100   1   2   3   4   5   6   7   8   9  10  11]

In [22]:
print(a)


[[100   1   2   3]
 [  4   5   6   7]
 [  8   9  10  11]]

In [23]:
a = np.arange(12).reshape(3, 4)
print(a)


[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]

In [24]:
print(a[:, ::3])


[[ 0  3]
 [ 4  7]
 [ 8 11]]

In [25]:
print(np.shares_memory(a[:, ::3], np.ravel(a[:, ::3])))


False

In [26]:
print(np.shares_memory(a[:, ::3], np.reshape(a[:, ::3], -1)))


False

In [27]:
print(a[:, ::2])


[[ 0  2]
 [ 4  6]
 [ 8 10]]

In [28]:
print(np.shares_memory(a[:, ::2], np.ravel(a[:, ::2])))


False

In [29]:
print(np.shares_memory(a[:, ::2], np.reshape(a[:, ::2], -1)))


True

In [30]:
a_3d = np.arange(24).reshape(2, 3, 4)
print(a_3d)


[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]

In [31]:
print(a_3d.ravel())


[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]

In [32]:
print(a_3d.ravel('F'))


[ 0 12  4 16  8 20  1 13  5 17  9 21  2 14  6 18 10 22  3 15  7 19 11 23]