我有一个带数字的numpy数组,我想计算从最后一个元素开始有多少个元素相等。
A = [1, 3, 2, 2, 0, 3, 2, 2, 2, 2]
然后我希望返回值为4(最后四个元素相等)
答案 0 :(得分:4)
print(np.argmax(A[::-1] != A[-1]))
我不确定当A超大时它如何执行。在这种情况下,简单的for循环会更好。
注意:可以通过documentation中的以下行来理解为什么有效:
如果多次出现最大值,则返回对应于第一次出现的索引。
感谢YSelf进行纠正。
答案 1 :(得分:1)
对于大型数组,您只希望其中的几个项目是相同的,使用let options = CGWindowListOption(arrayLiteral: .excludeDesktopElements, .optionOnScreenOnly)
let windowsListInfo = CGWindowListCopyWindowInfo(options, CGWindowID(0))
let infoList = windowsListInfo as! [[String:Any]]
let visibleWindows = infoList.filter{ $0["kCGWindowLayer"] as! Int == 0 }
print(visibleWindows)
的生成器表达式可能会很有效:
// return "Data Source=(local)\\SQLEXPRESS2;Initial Catalog=" + mCatalog + ";Integrated Security=True;Connect Timeout=30;MultipleActiveResultSets=False;Context Connection=False";
return "Data Source=(LocalDB)\\MSSQLLocalDB;Initial Catalog=" + mCatalog + ";Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False";