【问题标题】:tile operation in numpy [closed]numpy中的平铺操作[关闭]
【发布时间】:2013-10-23 11:16:55
【问题描述】:

谁能解释 numpy 的 tile 功能?我无法从http://docs.scipy.org/doc/numpy/reference/generated/numpy.tile.html中给出的示例中弄清楚

【问题讨论】:

    标签: python python-3.x numpy


    【解决方案1】:

    它只是重复数组中元素的数量。如果你有一个数组,比如[1,2,3],那么np.tile([1,2,3], 2) 将重复元素两次并创建一个新数组。正如 Thorsten 所解释的,np 总是返回一个数组,即使你给它一个列表。所以用一些例子来解释:

    >>> import numpy as np
    >>> ar = [1]
    >>> np.tile(ar, 2)
    array([1, 1])
    >>> np.tile(ar, 3)
    array([1, 1, 1])
    >>> np.tile(ar, 4)
    array([1, 1, 1, 1])
    >>> new_ar = [1,2,3]
    >>> np.tile(new_ar, 2)
    array([1, 2, 3, 1, 2, 3])
    >>> np.tile(new_ar, 3)
    array([1, 2, 3, 1, 2, 3, 1, 2, 3])
    #     |   1st |  2nd   |  3rd   | -> Repeats shown.
    

    【讨论】:

    • 如您的示例所示,tile(像大多数 numpy 函数一样)返回一个数组而不是列表,即使输入是一个列表。
    • @ThorstenKranz 是的,确实如此。谢谢指正。
    • >>> np.tile(a, (2, 2)) array([[0, 1, 2, 0, 1, 2], [0, 1, 2, 0, 1 , 2]]) >>> np.tile(a, (2, 1, 2)) 数组([[[0, 1, 2, 0, 1, 2]], [[0, 1, 2, 0 , 1, 2]]]) np.tile(a, (2, 2)) 和 np.tile(a, (2, 1, 2)) 是做什么的?
    • @PavanRavishankar 为什么不在 IDLE 或 python 上尝试一下,看看会发生什么。
    • 我确实尝试过。但我无法理解为什么 np.tile([0,1,2],(2,2)) 的输出是 array([[0, 1, 2, 0, 1, 2], [0, 1, 2, 0, 1, 2]])。我无法解释结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多