Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 带numpy数组的列表形状_Python_Arrays_List_Numpy - Fatal编程技术网

Python 带numpy数组的列表形状

Python 带numpy数组的列表形状,python,arrays,list,numpy,Python,Arrays,List,Numpy,我用Python创建了一个Nnumpy数组的列表,每个数组的大小都是D乘以p。当我调用numpy.shape(我的列表)时,我会返回元组(N,D,p)。当我附加到列表中的数组大小不相同时(或者如果我附加的项目不是数组),numpy.shape会抛出错误 如果我想要列表中每个数组的形状,我必须求助于列表理解还是有更快的方法 numpy是否只是在列表中迭代,检查以确保每个元素都是一个与前一个元素大小相同的数组,并据此决定是返回元组还是抛出错误 如果我想要列表中每个数组的形状,我必须求助于列表理解还是

我用Python创建了一个N
numpy
数组的列表,每个数组的大小都是D乘以p。当我调用
numpy.shape(我的列表)
时,我会返回元组
(N,D,p)
。当我附加到列表中的数组大小不相同时(或者如果我附加的项目不是数组),
numpy.shape
会抛出错误

  • 如果我想要列表中每个数组的形状,我必须求助于列表理解还是有更快的方法
  • numpy
    是否只是在列表中迭代,检查以确保每个元素都是一个与前一个元素大小相同的数组,并据此决定是返回元组还是抛出错误
  • 如果我想要列表中每个数组的形状,我必须求助于列表理解还是有更快的方法

    列出理解力

    numpy是否只是在列表中迭代,检查以确保每个元素都是与前一个元素大小相同的数组,并基于此决定是返回元组还是抛出错误


    ,构建一个完整的阵列以获得形状。(这不是任何人都费心去优化的。)

    1)是的,2)可能列表不是numpy数据类型。没有“numpy”的迭代方式,所以列表理解是唯一的选择。调用
    numpy.shape(我的列表)
    时,将隐式创建一个数组数组。要使此操作成功,列表上的所有数组都必须具有相同的形状。请注意,
    my_list.shape
    会给您一个错误。正是函数形式试图将列表转换为数组。
    map(np.shape,list\u of_array)
    不是比列表理解快吗?@kmario23:可能要快一些,但在运行时这两种方法都非常接近,这两种方法都不会使此操作成为性能瓶颈。另外,直接访问
    shape
    属性要比使用
    np.shape
    更快,而使用
    map
    无法做到这一点。(直接访问shape属性将是
    [arr.shape for arr in my_list]
    )是的。在运行一些测试后发现。顺便说一句,我为
    map
    提供了一个自定义python函数,该函数利用了
    arr.shape
    并发现它比列表理解慢2倍。但是,如果一个人只需要一个iterable,而不是整个列表本身,那么
    map
    就是一条出路。