我正在尝试使用另一个2D numpy数组值过滤2D numpy数组。像这样:
array1 = np.array([[ 0, 0],
[86, 4],
[75, 74],
[78, 55],
[53, 94],
[49, 83],
[99, 75],
[99, 10],
[32, 4],
[55, 99],
[62, 95],
[ 0, 0]])
array2 = np.array([[55, 99],
[32, 4],
[75, 74]])
array1[np.isin(array1, array2[2:5]).all(axis=1) == 0]
我的理想输出将是array1的过滤版本,该版本的行不等于array2切片中的行。 问题是当我这样做时:
np.isin(array1, array[2:5])
输出为:
array([[False, False],
[False, True],
[ True, True],
[False, True],
[False, False],
[False, False],
[ True, True],
[ True, False],
[ True, True],
[ True, True],
[False, False],
[False, False]])
它错误地将[99,75]行归类为[True,True],因为这两个值分别存在于我们的array2中。 是否有更正确的方法基于行的所有值进行过滤?
答案 0 :(得分:0)
这是使用np.all()执行此操作的效率低下但非常明确的方法:
Sub generateHTML()
Dim hyp As String
Dim html As String
hyp = ActiveWorkbook.FullName
html = "<a href= " & hyp & " >Link to file</a>"
Debug.Print html
End Sub