数组的形状由它每个轴上的元素个数给出:
shape
>>> import numpy as np
>>> a = np.floor(10*np.random.random((3,4)))
>>> a
array([[ 8., 0., 3., 2.],
[ 9., 8., 6., 3.],
[ 7., 9., 1., 8.]])
>>> a.shape
(3, 4)
一个数组的形状可以被多种命令修改:
ravel, shape, transpose, resize
>>> a.ravel()
array([ 8., 0., 3., 2., 9., 8., 6., 3., 7., 9., 1., 8.])
>>> a.shape
(3, 4)
>>> a.shape=(6,2)
>>> a
array([[ 8., 0.],
[ 3., 2.],
[ 9., 8.],
[ 6., 3.],
[ 7., 9.],
[ 1., 8.]])
>>> a.transpose()
array([[ 8., 3., 9., 6., 7., 1.],
[ 0., 2., 8., 3., 9., 8.]])
>>> a.transpose()
array([[ 8., 3., 9., 6., 7., 1.],
[ 0., 2., 8., 3., 9., 8.]])
>>> a
array([[ 8., 0.],
[ 3., 2.],
[ 9., 8.],
[ 6., 3.],
[ 7., 9.],
[ 1., 8.]])
>>> a.resize((2,6))
>>> a
array([[ 8., 0., 3., 2., 9., 8.],
[ 6., 3., 7., 9., 1., 8.]])
几种方法可以沿不同轴将数组堆叠在一起:
>>> a = np.floor(10*np.random.random((2,2)))
>>> a
array([[ 2., 9.],
[ 0., 8.]])
>>> b = np.floor(10*np.random.random((2,2)))
>>> b
array([[ 5., 3.],
[ 4., 8.]])
>>> np.vstack((a,b))
array([[ 2., 9.],
[ 0., 8.],
[ 5., 3.],
[ 4., 8.]])
>>> np.hstack((a,b))
array([[ 2., 9., 5., 3.],
[ 0., 8., 4., 8.]])
>>> np.column_stack((a,b))
array([[ 2., 9., 5., 3.],
[ 0., 8., 4., 8.]])
>>> a = np.array([4.,2.])
>>> b = np.array([2.,8.])
>>> a[:,np.newaxis]
array([[ 4.],
[ 2.]])
>>> np.column_stack((a[:,np.newaxis],b[:,np.newaxis]))
array([[ 4., 2.],
[ 2., 8.]])
>>> np.vstack((a[:,np.newaxis],b[:,np.newaxis]))
array([[ 4.],
[ 2.],
[ 2.],
[ 8.]])
将一个数组分割(split)成几个小数组。
>>> a = np.floor(10*np.random.random((2,12)))
>>> a
array([[ 3., 3., 1., 4., 0., 5., 0., 8., 8., 0., 8., 9.],
[ 4., 0., 9., 7., 7., 9., 4., 6., 1., 4., 3., 1.]])
>>> np.hsplit(a,3)
[array([[ 3., 3., 1., 4.],
[ 4., 0., 9., 7.]]), array([[ 0., 5., 0., 8.],
[ 7., 9., 4., 6.]]), array([[ 8., 0., 8., 9.],
[ 1., 4., 3., 1.]])]
>>> np.hsplit(a,(3,4))
[array([[ 3., 3., 1.],
[ 4., 0., 9.]]), array([[ 4.],
[ 7.]]), array([[ 0., 5., 0., 8., 8., 0., 8., 9.],
[ 7., 9., 4., 6., 1., 4., 3., 1.]])]
>>> np.hsplit(a,(4,5))
[array([[ 3., 3., 1., 4.],
[ 4., 0., 9., 7.]]), array([[ 0.],
[ 7.]]), array([[ 5., 0., 8., 8., 0., 8., 9.],
[ 9., 4., 6., 1., 4., 3., 1.]])]