检查数组的轴是否为零值

问题描述 投票:0回答:1

我知道numpy.all()检查数组的所有元素是否都非零(沿着指定的轴)。因此,

A = np.arange(27).reshape(3,3,3)
A
array([[[ 0,  1,  2],
        [ 3,  4,  5],
        [ 6,  7,  8]],

       [[ 9, 10, 11],
        [12, 13, 14],
        [15, 16, 17]],

       [[18, 19, 20],
        [21, 22, 23],
        [24, 25, 26]]])

A.all(axis=0)
array([[False,  True,  True],
       [ True,  True,  True],
       [ True,  True,  True]])

假设我只对数组的最后一个元素感兴趣,而不对整个轴感兴趣,例如:

B = np.array([[[ 1,  1,  2],
        [ 3,  4,  5],
        [ 6,  7,  8]],

       [[ 9, 10, 11],
        [12, 13, 14],
        [15, 16, 17]],

       [[18, 19, 20],
        [21, 22, 23],
        [0, 0, 0]]])

我该怎么做?

python arrays numpy
1个回答
0
投票

一种简单的方法是只使用-1索引(像对象一样从序列末尾向后的负索引索引。)>

B = np.array([[[ 1,  1,  2],
        [ 3,  4,  5],
        [ 6,  7,  8]],

       [[ 9, 10, 11],
        [12, 13, 14],
        [15, 16, 17]],

       [[18, 19, 20],
        [21, 22, 23],
        [0, 0, 0]]])

print(B[-1, -1])
print(np.any(B[-1, -1]))
print(np.all(B[-1, -1]))

送礼

[0 0 0]
False
False

从那里您可以使用想要确定真实性或虚假性的任何方法。

© www.soinside.com 2019 - 2024. All rights reserved.