numpy风格哪个首选? array.T [x]或array [:,0]

时间:2014-12-04 17:35:46

标签: python numpy

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

array[:,x] 

array.T[x]

我发现拥有一行数据,其中包含行中的字段和列中的数据,这样可以更加清晰地操作numpy:

array[x]

获取一个变量的整个系列而不是上述选项。 但是按列排序的变量是标准文件格式。

有关使用数据的最简单方法的任何偏好?

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

1 个答案:

答案 0 :(得分:0)

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

  1. 更快,可能是因为您没有转置整个数组来从中提取一个部分。在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
    
  2. 它以直观的方式推广到更高维数组,例如A[3, :, 4]

  3. 它反映了NumPy将数组视为多维对象的方式,而不是列表(列表)列表。