我有两个相同大小的数组。通常,这些数组的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更具可读性?
答案 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]])