The method reshape gives a new view of the array, with a new shape, without copying the data:
v = array([0,1,2,3,4,5]) M = v.reshape(2,3) shape(M) # returns (2,3) M[0,0] = 10 # now v[0] is 10
The various effects of reshape on an array defined by arange(6) are given in Figure 4.2:
Figure 4.2: The various effects of reshape on an array
reshape does not create a new array. It rather gives a new view on the existing array. In the preceding example, changing one element of M would automatically result in a change in the corresponding element in v. When this behavior is not acceptable, you need to copy the data, as explained in Section 5.1: Array views and copies.
If you try to reshape an array with a shape that does not multiply to the original shape, an error is raised:
ValueError: total size of new array must be unchanged.
Sometimes, it is convenient to specify only one shape parameter and let...