Python 将索引展平以访问元素?

Python 将索引展平以访问元素?,python,numpy,Python,Numpy,假设我有: one = np.array([ [2,3,np.array([ [1,2], [7,3] ])], [4,5,np.array([ [11,12],[14,15] ])] ], dtype=object) two = np.array([ [1,2] ,[7, 3], [11,12] , [14,15] ]) 我希望能够比较一个数组中的值和两个数组中的值 我说的是 [1,2

假设我有:

one = np.array([ [2,3,np.array([ [1,2],  [7,3]   ])],
                 [4,5,np.array([ [11,12],[14,15] ])]
               ], dtype=object)


two = np.array([ [1,2] ,[7, 3],
                 [11,12] , [14,15] ])
我希望能够比较一个数组中的值和两个数组中的值

我说的是

[1,2] ,[7, 3],
[11,12] , [14,15]
所以,我想逐一检查它们是否相同

可能像:

for idx,x in np.ndenumerate(one):
    for idy,y in np.ndenumerate(two):
        print(y)
它给出了两个元素的所有元素

我不知道如何同时访问所有元素,但只访问一行中的最后一行,并将它们与两行进行比较

问题是它们没有相同的尺寸。

这是可行的

np.r_[tuple(one[:, 2])] == two
输出:

array([[ True,  True],
       [ True,  True],
       [ True,  True],
       [ True,  True]], dtype=bool)
在一个评论链接中@George尝试与以下内容合作:

In [246]: a
Out[246]: array([1, [2, [33, 44, 55, 66]], 11, [22, [77, 88, 99, 100]]], dtype=object)
In [247]: a.shape
Out[247]: (4,)
这是一个4元素数组。如果我们重塑它,我们可以隔离一个内层

In [257]: a.reshape(2,2)
Out[257]: 
array([[1, [2, [33, 44, 55, 66]]],
       [11, [22, [77, 88, 99, 100]]]], dtype=object)
In [258]: a.reshape(2,2)[:,1]
Out[258]: array([[2, [33, 44, 55, 66]], [22, [77, 88, 99, 100]]], dtype=object)
最后一种情况是2,-2个列表。我们可以通过理解来分离每个列表中的第二项,并从结果列表中创建一个数组:

In [260]: a1=a.reshape(2,2)[:,1]
In [261]: [i[1] for i in a1]
Out[261]: [[33, 44, 55, 66], [77, 88, 99, 100]]
In [263]: np.array([i[1] for i in a1])
Out[263]: 
array([[ 33,  44,  55,  66],
       [ 77,  88,  99, 100]])

这里没什么特别的-只是注意数组的形状,在数组不起作用的地方使用列表操作。

如果a和b是数组,你可以将它们与a==bhi@george进行元素级比较,如果我是你,我会先去python聊天室再问。你知道规则…@BlackBear:问题是维度不同这些是数组的事实几乎是无用的。二是4,2的形状,所以[1,2]是二[0,:]。但在一个例子中,它是一[0,3][0,:]。在一个交互式python shell实验中,在你找到一个模式之前,先访问术语。@hpaulj:1[0,2][0,:]:。问题是它混淆了我如何同时访问1和2。假设我们没有数组,我们有列表,好的。很好。它能告诉我在哪一个索引中出现了1和2吗?谢谢你的意思是如果不是所有的条目都是相同的?对于第二种情况,只需将np.where应用于输出数组即可。首先,我甚至不知道你到底想要什么。你必须给出一个例子。对于两个,你的意思是res=np.r_[tupleone[:,2]==two,result=np.whereres==True?对于一个,我想要完全相同的。只是当我们处理一个时,我们只检查最后一部分,即一个[:,2],一行中的第二个索引,请用一个例子更新你的帖子,比如给定的[[假,真],[假,假],[假,假],[True,True]]您到底想要什么作为索引的输出;对于两个:[0,3,3],[1,0,1]对于一个??基本上,从链接[我问过你,我想做同样的事情np.r\u[]==但是现在我在数组中有了类实例。在这种情况下有没有办法使用np\u r?嗯……你是对的!这里很好地使用了重塑。谢谢你的提示