【问题标题】:Numpy Multidimensional ArrayNumpy 多维数组
【发布时间】:2020-09-24 19:32:07
【问题描述】:

我是 numpy 的新手,我不明白以下是如何工作的:

np.array([range(i, i + 3) for i in [2, 4, 6]]) 

输出是:

array([[2, 3, 4],[4, 5, 6],[6, 7, 8]])

【问题讨论】:

    标签: python arrays numpy multidimensional-array


    【解决方案1】:

    你了解列表推导吗? range?

    In [12]: [range(i, i + 3) for i in [2, 4, 6]]
    Out[12]: [range(2, 5), range(4, 7), range(6, 9)]
    

    np.arrayrange 对象转换为列表,然后构建数组。

    In [13]: [list(range(i, i + 3)) for i in [2, 4, 6]]
    Out[13]: [[2, 3, 4], [4, 5, 6], [6, 7, 8]]
    In [14]: np.array([list(range(i, i + 3)) for i in [2, 4, 6]])
    Out[14]: 
    array([[2, 3, 4],
           [4, 5, 6],
           [6, 7, 8]])
    

    所以基本上它只是教科书示例的一个变体,即从列表列表中创建一个数组:

    In [15]: np.array([[1,2,3],[10,11,12]])
    Out[15]: 
    array([[ 1,  2,  3],
           [10, 11, 12]])
    

    【讨论】:

    • 我了解 In & Out [12]。我不明白的是,如果[2,4,6]中的i的范围是(i,i + 3),那么数组如何输出[2,3,4],[4,5,6],[ 6、7、8]?
    • 它是range(i, i+3)。所以如果i2,我们得到range(2,5),扩展为一个列表是[2,3,4]
    猜你喜欢
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    • 2022-07-12
    • 2011-11-16
    • 2016-01-28
    • 2021-11-23
    • 2017-12-18
    相关资源
    最近更新 更多