今天用到了shape,就顺便学习一下,这个shape的作用就是要把矩阵进行行列转换,请看下面的几个例子就明白了:
>>> import numpy as np
>>> x = np.array([1,2,3,4])
>>> x.shape
(4,)
>>> y = np.zeros([2,3,4])
>>> y.shape
(2, 3, 4)
>>> y.shape = (3,8)
>>> y
array([[0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0., 0.]])
>>> y.shape = (3,6)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: cannot reshape array of size 24 into shape (3,6)
>>> y.shape = (4,6)
>>> y.shape
(4, 6)
>>> y
array([[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0.]])
>>> y = np.zeros([2,3,4])
>>> y
array([[[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]], [[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]]])
>>> y.shape = (-1,2)
>>> y
array([[0., 0.],
[0., 0.],
[0., 0.],
[0., 0.],
[0., 0.],
[0., 0.],
[0., 0.],
[0., 0.],
[0., 0.],
[0., 0.],
[0., 0.],
[0., 0.]])
>>> x.shape
(4,)
>>> x.shape = (-1,2)
>>> x
array([[1, 2],
[3, 4]])
>>>
参考文档: https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.shape.html