flatten()
ndarray.flatten(order='C')
flatten是numpy.ndarray.flatten的一个函数,返回当前数组折叠成一维的数组。适用于numpy对象,即array或者mat
例子:
from numpy import *
a=array([[1,2],[3,4],[5,6]])
a.flatten()
结果
array([1, 2, 3, 4, 5, 6])
所以 order默认是C,C语言风格,按行排列
from numpy import *
a=array([[1,2],[3,4],[5,6]])
a.flatten(’F‘)
结果
array([1, 3, 5, 2, 4, 6])
np.roll()函数
np.roll(a, shift, axis=None)
意思是将a,沿着axis的方向,滚动shift长度,
例子:
a = np.arange(10)
b = np.roll(a,3,axis=0)
结果
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> b
array([7, 8, 9, 0, 1, 2, 3, 4, 5, 6])
>>>
继续看例子,axis=0的时候就是跨列,横向滚动,=1的时候就是跨行,纵向滚动
c = np.arange(25)
c=np.reshape(c,(5,5))
c1 = np.roll(c,2,axis=0)
c2 = np.roll(c,2,axis=1)
看结果
>>> c1
array([[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24],
[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
>>> c2 = np.roll(c,2,axis=1)
>>> c2
array([[ 3, 4, 0, 1, 2],
[ 8, 9, 5, 6, 7],
[13, 14, 10, 11, 12],
[18, 19, 15, 16, 17],
[23, 24, 20, 21, 22]])
网友评论