gpt4 book ai didi

python - 需要在 numpy.any 上对矩阵进行小的说明

转载 作者:太空宇宙 更新时间:2023-11-04 10:58:39 25 4
gpt4 key购买 nike

我在让 numpy.any() 正常处理我的问题时遇到了一个小问题。假设我有一个 N X M X M 矩阵的 3D 矩阵,我需要去掉所有元素都相同的矩阵 MXM [全为零]。这是一个例子来说明我的问题

x = np.arange(250).reshape(10,5,5)
x[0,:,:] = 0

我需要做的是摆脱第一个 5X5 矩阵,因为它包含所有零。所以我尝试了

np.any(x,axis=0)

并期望有一个结果

[FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE]

但我得到的是

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

将以下结果应用到我想要的但我希望有更好的方法没有任何循环

for i in range(x.shape[0]):
y.append(np.any(x[i,:,:]))

我是不是哪里弄错了?谢谢!

最佳答案

x[0,:,:] = 0 的 10x5x5 矩阵中,我希望得到以下结果:

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

因为它是 10 5x5 数组中的第一个全为零而不是 5

你得到这个结果使用

x.any(axis=1).any(axis=1)

x.any(axis=2).any(axis=1)

这意味着你首先消除第二个(axis=1)或第三个(asix=2)维度,然后剩下的第二个(axis=1)你得到唯一的一个维度,它本来是第一个(axis =0).

关于python - 需要在 numpy.any 上对矩阵进行小的说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7684501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com