为2D数组实现numpy in1d?

为2D数组实现numpy in1d?,第1张

为2D数组实现numpy in1d?

您的问题很难理解,因为它包含无关的信息并且包含错​​别字。如果我理解正确,您只是想要一种有效的方法来对2D数组的行执行设置 *** 作(在这种情况下,是

K
和的交集
f(K)
)。

如果创建结构化数组视图,则可以使用numpy.in1d执行此 *** 作。

码:

如果是这样的话

K

In [50]: kOut[50]:array([[6, 6],       [3, 7],       [7, 5],       [7, 3],       [1, 3],       [1, 5],       [7, 6],       [3, 8],       [6, 1],       [6, 0]])

这是

f(K)
(对于此示例,我从第一个列中减去1,然后在第二个列中添加1):

In [51]: k2Out[51]:array([[5, 7],       [2, 8],       [6, 6],       [6, 4],       [0, 4],       [0, 6],       [6, 7],       [2, 9],       [5, 2],       [5, 1]])

那么您可以通过执行以下 *** 作找到

K
也在中找到的所有行
f(K)

In [55]: k[np.in1d(k.view(dtype='i,i').reshape(k.shape[0]),k2.view(dtype='i,i').reshape(k2.shape[0]))]Out[55]: array([[6, 6]])

view
reshape
创建平面结构的视图,以便每行都作为单个元素出现
in1d

in1d
创建一个
k
匹配项的布尔索引,该索引用于查找索引
k
并返回过滤后的数组。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5655074.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存