压扁指数以获取元素?

时间:2017-02-07 11:35:08

标签: 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] ])

我希望能够将one数组的数组中的值与two数组的值进行比较。

我在谈论

[1,2] ,[7, 3],
[11,12] , [14,15]

所以,我想逐一检查它们是否相同。

可能喜欢:

for idx,x in np.ndenumerate(one):
    for idy,y in np.ndenumerate(two):
        print(y)

提供two的所有元素。

我无法确定如何同时访问one的所有元素(但只是每一行的最后一行)并将其与two进行比较

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

2 个答案:

答案 0 :(得分:2)

这有效

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

输出:

array([[ True,  True],
       [ True,  True],
       [ True,  True],
       [ True,  True]], dtype=bool)

答案 1 :(得分:1)

在评论链接中 N = FileSize / ChunkSize //integer division RestSize = FileSize % ChunkSize //integer modulo for i = 0 to N - 1 Copy ChunkSize bytes from position i * ChunkSize into ChunkFile[i] if RestSize > 0 Copy RestSize bytes from position N * ChunkSize into ChunkFile[N] 尝试使用:

@George

这是一个4元素数组。如果我们重塑它,我们可以隔离内层

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,)

最后一种情况是(2,) - 2个列表。我们可以用理解来隔离每个列表中的第二个项目,并从结果列表中创建一个数组:

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)

这里没什么好看的 - 只关注数组形状,并使用数组不起作用的列表操作。