>>>import numpy as np
>>> x = np.zeros((3,4,5))>>> np.moveaxis(x,0,-1).shape
(4,5,3)>>> x
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.,0.],[0.,0.,0.,0.,0.],[0.,0.,0.,0.,0.],[0.,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 = np.moveaxis(x,0,-1)>>> x
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.],[0.,0.,0.],[0.,0.,0.]],[[0.,0.,0.],[0.,0.,0.],[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 = np.array([[1,2,3]])>>> np.swapaxes(x,0,1)
array([[1],[2],[3]])>>> x = np.array([[[0,1],[2,3]],[[4,5],[6,7]]])>>> x
array([[[0,1],[2,3]],[[4,5],[6,7]]])>>> np.swapaxes(x,0,2)
array([[[0,4],[2,6]],[[1,5],[3,7]]])
>>> np.atleast_2d(3.0)
array([[3.]])>>>import numpy as np
>>> x = np.arange(3.0)>>> np.atleast_2d(x)
array([[0.,1.,2.]])>>> np.atleast_2d(x).base is x
True
>>> np.atleast_3d(3.0)
array([[[3.]]])>>> x = np.arange(3.0)>>> np.atleast_3d(x).shape
(1,3,1)>>> x = np.arange(12.0).reshape(4,3)>>> np.atleast_3d(x).shape
(4,3,1)>>> np.atleast_3d(x).base is x.base
True>>>for arr in np.atleast_3d([1,2],[[1,2]],[[[1,2]]]):...print(arr,arr.shape)...[[[1][2]]](1,2,1)[[[1][2]]](1,2,1)[[[12]]](1,1,2)
>>> x = np.array([[1,2,3]])>>> y = np.array([[4],[5]])>>> np.broadcast_arrays(x,y)[array([[1,2,3],[1,2,3]]), array([[4,4,4],[5,5,5]])]>>> np.broadcast_arrays(x,np.array([[3,2,1]]))[array([[1,2,3]]), array([[3,2,1]])]>>> np.broadcast_arrays(x,(np.array([[3,2,1]]),np.array([[3,2,1]])))[array([[[1,2,3]],[[1,2,3]]]), array([[[3,2,1]],[[3,2,1]]])]
numpy.expand_dims函数
格式: numpy.expand_dims(a, axis)
功能: 展开数组的shape
>>> x = np.array([1,2])>>> x.shape
(2,)>>> y = np.expand_dims(x,axis=0)>>> y
array([[1,2]])>>> y.shape
(1,2)>>> y = np.expand_dims(x,axis=(0,1))>>> y
array([[[1,2]]])>>> y = np.expand_dims(x,axis=(2,0))>>> y
array([[[1],[2]]])
numpy.squeeze函数
格式: numpy.squeeze(a, axis=None)
功能: 从数组shape中删除一维条目
参数 :
a :array_like
输入数据。
axis :None 或 int 或 int类型的tuple。 选择形状中一维条目的子集。
如果选择的形状输入大于一个的轴,则会引发错误。
Raises :ValueError
>>> x = np.array([[[0],[1],[2]]])>>> x.shape
(1,3,1)>>> np.squeeze(x).shape
(3,)>>> np.squeeze(x,axis=0).shape
(3,1)>>> np.squeeze(x,axis=1).shape
Traceback (most recent call last):
File "<stdin>", line 1,in<module>
File "<__array_function__ internals>", line 5,in squeeze
File "/home/enrace/.local/lib/python3.8/site-packages/numpy/core/fromnumeric.py", line 1508,in squeeze
return squeeze(axis=axis)
ValueError: cannot select an axis to squeeze out which has size not equal to one
>>> x = np.array([[1234]])>>> x.shape
(1,1)>>> np.squeeze(x)
array(1234)>>> np.squeeze(x)[()]1234
>>> x = np.arange(6).reshape(2,3)>>> y = np.asfortranarray(x)>>> y = np.asfortranarray(x)>>> x.flags['F_CONTIGUOUS']False>>> y.flags['F_CONTIGUOUS']True