Python 哪一种是裸体风格?array.T[x]或array[:,0]

Python 哪一种是裸体风格?array.T[x]或array[:,0],python,numpy,Python,Numpy,在numpy中提取数据列的首选方法是什么 array[:,x] 或 我发现,在numpy中,拥有一个数据数组,其中字段位于行中,数据位于列中更易于操作: array[x] 与上述选项相反,沿一个变量获取整个系列。 但按列排序变量是标准的文件格式 关于使用数据的最简单方法是什么,您有什么偏好吗 我应该在读入数据时转置所有数据,然后在输出数据时再次转置吗?您应该更喜欢切片[:,x],原因如下: 它的速度更快,可能是因为您没有转换整个数组以从中提取片段。在Python 3.5.1、NumPy 1

在numpy中提取数据列的首选方法是什么

array[:,x] 

我发现,在numpy中,拥有一个数据数组,其中字段位于行中,数据位于列中更易于操作:

array[x]
与上述选项相反,沿一个变量获取整个系列。 但按列排序变量是标准的文件格式

关于使用数据的最简单方法是什么,您有什么偏好吗


我应该在读入数据时转置所有数据,然后在输出数据时再次转置吗?

您应该更喜欢切片
[:,x]
,原因如下:

  • 它的速度更快,可能是因为您没有转换整个数组以从中提取片段。在Python 3.5.1、NumPy 1.11.0中测试:

    >>> timeit.timeit('A[:,568]', setup = 'import numpy as np\nA = np.random.uniform(size=(1000,1000))')
    0.21135332298581488
    >>> timeit.timeit('A.T[568]', setup = 'import numpy as np\nA = np.random.uniform(size=(1000,1000))')
    0.3025632489880081
    
  • 它以一种简单的方式推广到高维数组,如
    a[3,:,4]

  • 它反映了数组作为多维对象而不是列表(列表)的NumPy思维方式


  • 当然,为什么不。。。?首选的方法是最适合你的方法…只是想知道其他人做什么。也因为。。。“应该有一种——最好只有一种——显而易见的方法。尽管这种方法一开始可能并不明显,除非你是荷兰人。”我想不出
    array.t[x]
    有什么问题,但它并不常用。它不容易推广到更多维度。
    array[:,x]
    似乎更难理解。我支持可推广的解决方案,因此我支持
    array[:,x]
    谢谢。
    >>> timeit.timeit('A[:,568]', setup = 'import numpy as np\nA = np.random.uniform(size=(1000,1000))')
    0.21135332298581488
    >>> timeit.timeit('A.T[568]', setup = 'import numpy as np\nA = np.random.uniform(size=(1000,1000))')
    0.3025632489880081