访问具有相同大小的几个数组的相同索引的元素

时间:2015-02-22 12:59:29

标签: python arrays select

我有两个相同大小的数组。通常,这些数组的dtype是object(dtype ='O')。从两个数组访问具有相同标记的元素的最佳方法是什么。

  

可能性1:

remove_indices = [i for i in range(len(array1)) if value in array1]
array1 = np.delete(array1, remove_indices, 0)
array2 = np.delete(array2, remove_indices, 0)
  

可能性2:

array3 = np.array([[array1[i], array2[i]] for i in range(len(array1)) 
                   if value not in array1[i]])

array1 = array3[:,0]
array2 = array3[:,1]

请注意,可能性2更快。是否有其他类似执行时间(或更快)的解决方案?我怎样才能使Possiblity 2更具可读性?

1 个答案:

答案 0 :(得分:0)

不确定能够很好地理解您的示例,但坚持What is the best way to access elements with same indicies from both arrays.让我想到zip。但是使用numpy为什么不使用转置?

像:

>>> array1 = numpy.array([0, 1, 2, 3, 4])
>>> array2 = numpy.array([5, 6, 7, 8, 9])
>>> numpy.array([array1, array2])
array([[0, 1, 2, 3, 4],
       [5, 6, 7, 8, 9]])
>>> numpy.array([array1, array2]).T
array([[0, 5],
       [1, 6],
       [2, 7],
       [3, 8],
       [4, 9]])