我有一个像这样的Numy数组:

source = np.array([[[0,0,0],[0,0,1],[0,1,0],[1,0,0],[1,0,1],[1,1,0],[1,1,1]]])

我正在try 将它与另一个数组进行比较,后者的Axis2更短,Axis3中有重复项:

values = np.array([[[0,1,0],[1,0,0],[1,1,1],[1,1,1],[0,1,0]]])

我的目标是有一个布尔数组,只要最长的:

[False, False,True,True,False,False,True]

我试过这些命令:

np.isin(source,values).all(axis=2)

但它显示了一个由七个True组成的array.像numpy.in1d()这样的函数似乎是一个很好的 Select ,但我没有实现将其改编为适用于3Darray.

推荐答案

一种方法是:

np.in1d(np.apply_along_axis(''.join, 2, source.astype(str)), 
        np.apply_along_axis(''.join, 2, values.astype(str)))

array([False, False,  True,  True, False, False,  True])

不过,另一种方法可能是内存密集型的:

(source.transpose(1,0,2) == values).all(2).any(1)
array([False, False,  True,  True, False, False,  True])

Python相关问答推荐

从Python调用GMP C函数时的分段错误和内存泄漏

Tkinter -控制调色板的位置

查找下一个值=实际值加上使用极点的50%

TARete错误:类型对象任务没有属性模型'

Polars LazyFrame在收集后未返回指定的模式顺序

根据在同一数据框中的查找向数据框添加值

如何更改分组条形图中条形图的 colored颜色 ?

numpy卷积与有效

如何在Raspberry Pi上检测USB并使用Python访问它?

使用Python更新字典中的值

形状弃用警告与组合多边形和多边形如何解决

连接一个rabrame和另一个1d rabrame不是问题,但当使用[...]'运算符会产生不同的结果

如何在Python中找到线性依赖mod 2

Plotly Dash Creating Interactive Graph下拉列表

AES—256—CBC加密在Python和PHP中返回不同的结果,HELPPP

Flash只从html表单中获取一个值

python sklearn ValueError:使用序列设置数组元素

为什么Python内存中的列表大小与文档不匹配?

在二维NumPy数组中,如何 Select 内部数组的第一个和第二个元素?这可以通过索引来实现吗?

如何根据rame中的列值分别分组值