我是一名有用的助手,可以为您进行翻译。以下是您需要翻译的内容:
第二个数组是:
输出的数组为:
理想情况下,输出应为:
但实际上是这样的:
或类似的东西。
我有一个np数组,它是通过以下方式构建两个其他数组的交集:
第一个数组是:
[['! ! !' '! ! ! !']
['! ! !' '! ! ! "']
['! ! !' '! ! ! .']
...,
['}' 'was postponed']
['}' 'was']
['}' '{of']]
第二个数组是:
[['! ! !' '! ! ! !']
['! ! !' '! ! ! "']
['! ! !' '! ! ! .']
...,
['}' 'was postponed']
['}' 'was']
['}' '{of']]
实际上,这两个数组之间存在多个差异,但主要出现在中间行。
构建交集的代码如下:
def multidim_intersect(arr1, arr2):
arr1_view = arr1.view([('',arr1.dtype)]*arr1.shape[1])
arr2_view = arr2.view([('',arr2.dtype)]*arr2.shape[1])
intersected = np.intersect1d(arr1_view, arr2_view)
return intersected.view(arr1.dtype).reshape(-1, arr1.shape[1])
输出的数组为:
[['!' '!']
['!' '! !']
['!' '! ! !']
...,
['}' 'was']
['}' 'was postponed']
['}' '{of']]
正如您所看到的,我的新数组与原始的两个数组排序方式不同(多个感叹号排在单个感叹号之前,就像在LC_ALL=C sort中一样)。有没有办法将我的输出数组按照其他数组的方式进行排序?请注意,数组的形状很重要。
@Mr E arr1和arr2最初是列表。我无法给出精确的副本,但我会尽力构建一个例子来说明我需要什么。
arr1 = [['! ! !' '! ! ! !']
['! ! !' '! ! ! "']
['! ! !' '! ! ! .']
['!' '!']
['}' 'was postponed']
['}' 'was']
['}' '{of']]
arr2 = [['! ! !' '! ! ! !']
['! ! !' '! ! ! "']
['! ! !' '! ! ! .']
['!' '!']
['}' 'was postponed']
['}' 'was']
['}' '{of']]
理想情况下,输出应为:
[['! ! !' '! ! ! !']
['! ! !' '! ! ! "']
['! ! !' '! ! ! .']
['!' '!']
['}' 'was postponed']
['}' 'was']
['}' '{of']]
但实际上是这样的:
[['!' '!']
['! ! !' '! ! ! !']
['! ! !' '! ! ! "']
['! ! !' '! ! ! .']
['}' 'was postponed']
['}' 'was']
['}' '{of']]
或类似的东西。
arr1
和arr2
,可以复制并粘贴到终端或编辑器中吗? - YXD