美文网首页
flatten() ,np.roll()

flatten() ,np.roll()

作者: 青吟乐 | 来源:发表于2019-08-02 09:32 被阅读0次

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]])

相关文章

网友评论

      本文标题:flatten() ,np.roll()

      本文链接:https://www.haomeiwen.com/subject/uydkdctx.html