sách gpt4 ăn đã đi

Kiểm tra xem có bao nhiêu mảng có nhiều mảng trong một mảng có nhiều mảng bằng với các mảng có nhiều mảng khác trong một mảng có nhiều mảng có kích thước khác nhau

In lại 作者:太空狗 更新时间:2023-10-30 00:53:33 34 4
mua khóa gpt4 giày nike

我的问题

假设我有

a = np.array([ np.array([1,2]), np.array([3,4]), np.array([5,6]), np.array([7,8]), np.array([9,10])])
b = np.array([ np.array([5,6]), np.array([1,2]), np.array([3,192])])

它们是两个数组,大小不同,包含其他数组(内部数组大小相同!)

我想计算 b 中有多少项(即内部数组)也在 a 中。请注意,我没有考虑他们的立场!

我该怎么做?

我的尝试

count = 0
for bitem in b:
for aitem in a:
if aitem==bitem:
count+=1

有没有更好的方法?尤其是在一行中,也许有一些理解..

câu trả lời hay nhất

numpy_indexed包包含针对这些类型问题的高效(通常为 nlogn)和矢量化解决方案:

import numpy_indexed as npi
count = len(npi.intersection(a, b))

请注意,这与您的双循环略有不同,例如丢弃 a 和 b 中的重复条目。如果你想在 b 中保留重复项,这会起作用:

count = npi.in_(b, a).sum()

a 中的重复条目也可以通过执行 npi.count(a) 并考虑其结果来处理;但无论如何,我只是为了说明目的而漫无目的,因为我认为这种区别对您来说可能并不重要。

关于python - 检查一个 numpy 数组中有多少个 numpy 数组与另一个不同大小的 numpy 数组中的其他 numpy 数组相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45936138/

34 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress