我有一个像这样的Numpy数组:
source = np.array([[[0,0,0],[0,0,1],[0,1,0],[1,0,0],[1,0,1],[1,1,0],[1,1,1]]])
字符串
我试着将它与另一个数组进行比较,它的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的数组。像numpy.in1d()这样的函数似乎是一个很好的选择,但是我没有实现将它用于3D数组。
2条答案
按热度按时间lstz6jyr1#
单程:
字符串
另一种方式,虽然可能是内存密集型的:
型
dfddblmv2#
解决方案1:将值中的每一行与源中的每一行进行比较
字符串
解决方案2:转换it(n,1)形状
型